<SEC-DOCUMENT>0001200375-25-000003.txt : 20250227
<SEC-HEADER>0001200375-25-000003.hdr.sgml : 20250227
<ACCEPTANCE-DATETIME>20250227162026
ACCESSION NUMBER:		0001200375-25-000003
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		112
CONFORMED PERIOD OF REPORT:	20241231
FILED AS OF DATE:		20250227
DATE AS OF CHANGE:		20250227

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			CODEXIS, INC.
		CENTRAL INDEX KEY:			0001200375
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL ORGANIC CHEMICALS [2860]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		IRS NUMBER:				710872999
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-34705
		FILM NUMBER:		25679198

	BUSINESS ADDRESS:	
		STREET 1:		200 PENOBSCOT DRIVE
		CITY:			REDWOOD CITY
		STATE:			CA
		ZIP:			94063
		BUSINESS PHONE:		650-421-8100

	MAIL ADDRESS:	
		STREET 1:		200 PENOBSCOT DRIVE
		CITY:			REDWOOD CITY
		STATE:			CA
		ZIP:			94063

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	CODEXIS INC
		DATE OF NAME CHANGE:	20021022
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>cdxs-20241231.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:aef94194-0caa-4e4d-9931-7acc6f219269,g:ad5cae60-29a9-4327-bdf6-2c1f9803d5bd,d:54de1f9b7c534b2395538b2f9d079d1a-->
<html xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:cdxs="http://www.codexis.com/20241231" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:cyd="http://xbrl.sec.gov/cyd/2024" xmlns:srt="http://fasb.org/srt/2024" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns="http://www.w3.org/1999/xhtml" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cdxs-20241231</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-32">0001200375</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" format="ixt:fixed-false" id="f-33">false</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalYearFocus" id="f-34">2024</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalPeriodFocus" id="f-35">FY</ix:nonNumeric><ix:nonNumeric contextRef="c-75" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-533">1</ix:nonNumeric><ix:nonNumeric contextRef="c-76" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-534">1</ix:nonNumeric><ix:nonNumeric contextRef="c-77" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-535">1</ix:nonNumeric><ix:nonNumeric contextRef="c-78" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" format="ixt-sec:duryear" id="f-536">1</ix:nonNumeric><ix:nonNumeric contextRef="c-334" name="us-gaap:InvestmentVariableInterestRateTypeExtensibleEnumeration" id="f-1307">http://fasb.org/us-gaap/2024#PrimeRateMember</ix:nonNumeric><ix:nonNumeric contextRef="c-335" name="us-gaap:InvestmentVariableInterestRateTypeExtensibleEnumeration" id="f-1310">http://fasb.org/us-gaap/2024#PrimeRateMember</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cdxs-20241231.xsd"/></ix:references><ix:resources><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="usdPerShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="segment"><xbrli:measure>cdxs:segment</xbrli:measure></xbrli:unit><xbrli:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="payment"><xbrli:measure>cdxs:payment</xbrli:measure></xbrli:unit><xbrli:unit id="plan"><xbrli:measure>cdxs:plan</xbrli:measure></xbrli:unit><xbrli:unit id="installment"><xbrli:measure>cdxs:installment</xbrli:measure></xbrli:unit><xbrli:unit id="time"><xbrli:measure>cdxs:time</xbrli:measure></xbrli:unit><xbrli:unit id="executive"><xbrli:measure>cdxs:executive</xbrli:measure></xbrli:unit><xbrli:unit id="security"><xbrli:measure>cdxs:security</xbrli:measure></xbrli:unit><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit><xbrli:unit id="renewal_option"><xbrli:measure>cdxs:renewal_option</xbrli:measure></xbrli:unit><xbrli:unit id="tranche"><xbrli:measure>cdxs:tranche</xbrli:measure></xbrli:unit><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-02-24</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-10"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-12"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-13"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-14"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-15"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-16"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-17"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-18"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-20"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-22"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-23"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-24"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-25"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-26"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-32"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-33"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-34"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-35"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-36"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-37"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-38"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-39"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-40"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-41"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-42"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-43"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-45"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-46"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-47"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-48"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-53"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:FourCustomersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-54"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:FourCustomersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-55"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-56"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-57"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-59"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-60"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-61"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-62"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-63"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-65"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-68"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-69"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-70"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-71"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-72"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:LongTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-73"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-74"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:LongTermUnbilledReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-76"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-78"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2028-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-80"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-82"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-83"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-84"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-86"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-87"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-88"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2012-02-01</xbrli:startDate><xbrli:endDate>2012-02-29</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2015-12-01</xbrli:startDate><xbrli:endDate>2015-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-90"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-91"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-92"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-93"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-95"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-96"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-97"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:EnzymeSupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-98"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-99"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-100"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-101"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-102"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-103"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-104"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-105"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-106"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-107"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-05-01</xbrli:startDate><xbrli:endDate>2019-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-108"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-109"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-110"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-111"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-112"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-113"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-114"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-115"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-116"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-12-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-117"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-10-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-118"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-119"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:UpFrontPaymentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-120"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-121"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestonePaymentPerTargetGeneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-122"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-123"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-124"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-125"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-126"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-127"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-128"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-01</xbrli:startDate><xbrli:endDate>2020-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-129"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:RoyaltyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-130"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-06-01</xbrli:startDate><xbrli:endDate>2020-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-131"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-132"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-133"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-01</xbrli:startDate><xbrli:endDate>2022-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-135"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-136"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-137"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-138"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-139"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-140"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-141"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:RoyaltyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-142"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-143"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-144"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-145"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-146"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-08-01</xbrli:startDate><xbrli:endDate>2022-08-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-147"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-148"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-149"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-150"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-151"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-152"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-153"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-154"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-155"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-156"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-157"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-158"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-159"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-160"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-161"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-162"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-03-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-163"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-164"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-165"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesC1PreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-166"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-167"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-168"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-169"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesCAndC1PreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-170"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-171"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-172"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-07-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-173"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-174"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-175"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-176"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-177"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-178"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-01</xbrli:startDate><xbrli:endDate>2022-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-179"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-180"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-181"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-182"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-183"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-184"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-185"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-186"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-187"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-188"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-189"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-190"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-191"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-192"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-193"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-194"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-195"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-196"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-197"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-198"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-199"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-200"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-201"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-202"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-203"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-204"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-205"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-206"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-208"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-209"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-210"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-211"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-212"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-213"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-214"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-215"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-216"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-217"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-218"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-219"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-220"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-221"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-222"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-223"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-224"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-225"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-226"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-227"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-229"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-230"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:A2024InducementPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022InducementPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-232"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-04-22</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-233"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-234"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-04-01</xbrli:startDate><xbrli:endDate>2023-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-235"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-236"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019And2024InducementPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-237"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-06-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-238"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-239"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-240"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-241"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-242"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-243"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-244"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-245"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-246"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-247"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-248"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-249"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-250"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-251"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-252"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceShareUnitsPSUsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-253"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-254"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-255"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-256"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PBOMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-257"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-258"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-259"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-260"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-261"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-262"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-263"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-264"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-265"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-266"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-267"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-268"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-269"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-270"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-271"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-272"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-273"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-274"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-275"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-276"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-277"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-278"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-279"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-280"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-281"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-282"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-283"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-284"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-285"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-286"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-287"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-288"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-289"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-290"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-291"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-292"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-293"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-294"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-295"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-296"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-297"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-298"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-299"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-300"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-301"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-02-27</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-302"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-05-01</xbrli:startDate><xbrli:endDate>2021-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-303"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-304"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">cdxs:CantorSalesAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-02</xbrli:startDate><xbrli:endDate>2024-05-02</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-305"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">cdxs:CantorSalesAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-05-02</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-306"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:CantorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-307"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:CantorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-308"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2005-01-01</xbrli:startDate><xbrli:endDate>2005-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-309"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-310"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-311"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-312"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A400PenoscotMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-313"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-314"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:PenobscotSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-12-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-315"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:PenobscotSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-316"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:ChesapeakeSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-12-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-317"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:ChesapeakeSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-318"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-319"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-320"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-321"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-322"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-323"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-324"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-325"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-06-30</xbrli:startDate><xbrli:endDate>2017-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-326"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-327"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-328"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-329"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-02-13</xbrli:startDate><xbrli:endDate>2024-02-13</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-330"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanFirstTrancheMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-332"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanSecondTrancheMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-333"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-334"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-335"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-336"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-337"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-338"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-339"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-340"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">cdxs:InnovatusLoanWarrantsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-341"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-342"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-343"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-344"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-345"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-346"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerCMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-347"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-348"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerEMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-349"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-350"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-351"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-352"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-353"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerFMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-354"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerGMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-355"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerHMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-356"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerIMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-357"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-358"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-359"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-360"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-361"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-362"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-363"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-364"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-365"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-366"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-367"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-368"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-369"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-370"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-371"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-372"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-373"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-374"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-375"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-376"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-377"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-07-01</xbrli:startDate><xbrli:endDate>2023-07-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-378"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-379"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-11-01</xbrli:startDate><xbrli:endDate>2022-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-380"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-381"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001200375</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context></ix:resources></ix:header></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_1"></div><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">UNITED STATES</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">Washington, D.C. 20549</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%">FORM&#160;<ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">10-K</ix:nonNumeric></span></div><div style="margin-top:2pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(Mark One)</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:0.1%"/><td style="width:2.577%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:96.123%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><ix:nonNumeric contextRef="c-1" name="dei:DocumentAnnualReport" format="ixt:fixed-true" id="f-2">&#9746;</ix:nonNumeric></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ANNUAL REPORT PURSUANT TO SECTION&#160;13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></td></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">For the fiscal year ended:</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-4"><ix:nonNumeric contextRef="c-1" name="dei:CurrentFiscalYearEndDate" format="ixt:date-monthname-day-en" id="f-3">December&#160;31</ix:nonNumeric>, 2024</ix:nonNumeric></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">or</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:0.1%"/><td style="width:2.577%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:96.123%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentTransitionReport" format="ixt:fixed-false" id="f-5">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></td></tr></table></div><div style="text-align:center;text-indent:24.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">For the transition period from &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; to &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.</span></div><div style="text-align:center;text-indent:24.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">Commission File No.: <ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-6">001-34705</ix:nonNumeric></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-7">Codexis,&#160;Inc.</ix:nonNumeric></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">(Exact name of registrant as specified in its charter)</span></div><div style="margin-top:2pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:46.923%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.610%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.167%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-8">Delaware</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-9">71-0872999</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(State or other jurisdiction of incorporation or organization)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(I.R.S. Employer Identification No.)</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div style="margin-bottom:4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-10">200 Penobscot Drive</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-11">Redwood City</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-12">California</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-13">94063</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(Address of principal executive offices)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(Zip Code)</span></td></tr></table></div><div style="margin-top:2pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:80%">Registrant&#8217;s telephone number, including area code:</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:80%;text-decoration:underline"> (<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-14">650</ix:nonNumeric>)&#160;<ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-15">421-8100</ix:nonNumeric></span></div><div style="margin-top:2pt;text-align:center"><span><br/></span></div><div style="margin-top:3pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">Securities Registered Pursuant to Section&#160;12(b)&#160;of the Act:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:38.812%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.075%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:38.813%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Title of Each Class:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Trading Symbols(s):</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Name of Each Exchange on which Registered:</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:Security12bTitle" id="f-16">Common Stock, par value $0.0001 per share</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:TradingSymbol" id="f-17">CDXS</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-18">The Nasdaq Global Select Market</ix:nonNumeric></span></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%;text-decoration:underline">Securities Registered Pursuant to Section&#160;12(g)&#160;of the Act: None</span></td></tr></table><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:18.487%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.745%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:49.710%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.712%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.876%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.745%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.876%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.749%"/><td style="width:0.1%"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityWellKnownSeasonedIssuer" id="f-19">No</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityVoluntaryFilers" id="f-20">No</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityCurrentReportingStatus" id="f-21">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (&#167; 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityInteractiveDataCurrent" id="f-22">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="21" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or emerging growth company. See the definitions of &#8220;large accelerated filer&#8221;, &#8220;accelerated filer&#8221; and &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act:</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Large accelerated filer</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accelerated filer</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="f-23">Non-accelerated filer</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:2pt;text-align:right"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9746;</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntitySmallBusiness" format="ixt:fixed-true" id="f-24">Smaller reporting company</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:2pt;text-align:right"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#9746;</span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt:fixed-false" id="f-25">Emerging growth company</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="21" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act.</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C.7262(b)) by the registered public accounting firm that prepared or issued its audit report. &#9744;</span></div></td><td colspan="12" style="padding:0 1pt"><ix:nonNumeric contextRef="c-1" name="dei:IcfrAuditorAttestationFlag" format="ixt:fixed-true" id="f-26"></ix:nonNumeric></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. &#9744;</span></td><td colspan="12" style="padding:0 1pt"><ix:nonNumeric contextRef="c-1" name="dei:DocumentFinStmtErrorCorrectionFlag" format="ixt:fixed-false" id="f-27"></ix:nonNumeric></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of <br/>incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167;240.10D-1(b).  &#9744;</span></td><td colspan="12" style="padding:0 1pt"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Indicate by check mark whether the registrant is a shell company (as defined in Rule&#160;12b-2 of the Act).</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityShellCompany" format="ixt:fixed-false" id="f-28">&#9746;</ix:nonNumeric></span></td></tr></table></div><div style="margin-top:3pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">The aggregate market value of voting and non-voting common stock held by non-affiliates of Codexis as of June 30, 2024 was approximately $<ix:nonFraction unitRef="usd" contextRef="c-2" decimals="-5" name="dei:EntityPublicFloat" scale="6" id="f-29">152.4</ix:nonFraction> million&#160;based upon the closing price reported for such date on the Nasdaq Global Select Market.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of February&#160;24, 2025, there we</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">re <ix:nonFraction unitRef="shares" contextRef="c-3" decimals="INF" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-30">82,837,311</ix:nonFraction></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"> shares of the registrant&#8217;s Common Stock, par value $0.0001 per share, outstanding.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-top:3pt"><span><br/></span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="padding-left:108pt;text-indent:36pt"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">______________________________________&#160;</span></div><div style="margin-top:2pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%">DOCUMENTS INCORPORATED BY REFERENCE</span></div><div style="margin-bottom:6pt;margin-top:2pt;text-indent:18pt"><ix:nonNumeric contextRef="c-1" name="dei:DocumentsIncorporatedByReferenceTextBlock" id="f-31" escape="true"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Portions of the registrant&#8217;s Definitive Proxy Statement to be filed with the Commission pursuant to Regulation 14A in connection with the registrant&#8217;s 2025 Annual Meeting of Stockholders (the &#8220;2025 Proxy Statement&#8221;), to be filed subsequent to the date hereof, are incorporated by reference into Part III of this Report. Such Definitive Proxy Statement will be filed with the Securities and Exchange Commission not later than 120 days after the conclusion of the registrant&#8217;s fiscal year ended December&#160;31, 2024. Except with respect to information specifically incorporated by reference in this Form 10-K, the 2025 Proxy Statement is not deemed to be filed as part of this Form 10-K.<br/></span></ix:nonNumeric><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:98.900%"/><td style="width:0.1%"/></tr><tr style="height:3pt"><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-top:3pt"><span><br/></span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Annual Report on Form 10-K</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">For The Year Ended December&#160;31, 2024 </span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:8.430%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.292%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:79.838%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.940%"/><td style="width:0.1%"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">TABLE OF CONTENTS</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART I</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_16">Business</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_16">4</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;1A</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_19">Risk Factors</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_19">15</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;1B</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_22">Unresolved Staff Comments</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_22">45</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 1C</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_25">Cybersecurity</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_25">45</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_28">Properties</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_28">46</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;3</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_31">Legal Proceedings</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_31">46</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;4</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_34">Mine Safety Disclosures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_34">46</a></span></div></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART II</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;5</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_40">Market for Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_40">47</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 6</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_43">[Reserved]</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_43">48</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;7</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_46">Management's Discussion and Analysis of Financial Condition and Results of Operation</a>s</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_46">49</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;7A</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_64">Quantitative and Qualitative Disclosures About Market Risk</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_64">61</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;8</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_67">Financial Statements and Supplementary Data</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_67">62</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;9</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_148">Changes in and Disagreements with Accountants on Accounting and Financial Disclosures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_148">106</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;9A</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_151">Controls and Procedures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_151">106</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;9B</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_154">Other Information</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_154">106</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item 9C</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_157">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_157">106</a></span></div></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART III</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;10</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_163">Directors, Executive Officers and Corporate Governance</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_163">107</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;11</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_166">Executive Compensation</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_166">107</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;12</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_169">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_169">107</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;13</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_172">Certain Relationships and Related Transactions, and Director Independence</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_172">107</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;14</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_175">Principal Accounting Fees and Services</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_175">107</a></span></div></td></tr><tr><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">PART IV</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;15</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_181">Exhibits and Financial Statement Schedules</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_181">108</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Item&#160;16</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_187">Form 10-K Summary</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_187">113</a></span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_190">Signatures</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_190">114</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SPECIAL NOTE REGARDING FORWARD-LOOKING STATEMENTS</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following discussion and analysis in this annual report on Form 10-K should be read in conjunction with our audited consolidated financial statements and the related Notes that appear elsewhere in this Annual Report on Form 10-K. This Annual Report on Form&#160;10-K contains &#8220;forward-looking statements&#8221; within the meaning of Section&#160;21E of the Securities Exchange Act of 1934, as amended (&#8220;the Exchange Act&#8221;), particularly in Part I, Item&#160;1: &#8220;Business,&#8221; Part I, Item&#160;1A: &#8220;Risk Factors&#8221; and Part II, Item&#160;7: &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.&#8221; These statements are often identified by the use of words such as &#8220;may,&#8221; &#8220;will,&#8221; &#8220;expect,&#8221; &#8220;believe,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; &#8220;estimate&#8221; or &#8220;continue,&#8221; and similar expressions or variations. All statements other than statements of historical fact could be deemed forward-looking, including, but not limited to: any projections of financial information or performance; any statements about historical results that may suggest trends for our business; any statements of the plans, strategies, and objectives of management for future operations; any statements of expectation or belief regarding future events, commercial partnerships, technology developments, our products and product platforms, product sales, revenues, expenses, liquidity, cash flow, commercial reach, market growth rates or enforceability of our intellectual property rights and related litigation expenses; and any statements of assumptions underlying any of the foregoing. Such forward-looking statements are subject to risks, uncertainties and other factors that could cause actual results and the timing of certain events to differ materially from future results expressed or implied by such forward-looking statements. Accordingly, we caution you not to place undue reliance on these statements. For a discussion of some of the factors that could cause actual results to differ materially from our forward-looking statements, see the discussion on risk factors that appear in Part I, Item&#160;1A: &#8220;Risk Factors&#8221; of this Annual Report on Form 10-K and other risks and uncertainties detailed in this and our other reports and filings with the U.S. Securities and Exchange Commission (&#8220;SEC&#8221;). The forward-looking statements in this Annual Report on Form&#160;10-K represent our views as of the date of this Annual Report on Form&#160;10-K. We anticipate that subsequent events and developments will cause our views to change. However, while we may elect to update these forward-looking statements at some point in the future, we have no current intention of doing so except to the extent required by applicable law. You should, therefore, not rely on these forward-looking statements as representing our views as of any date subsequent to the date of this Annual Report on Form&#160;10-K. </span></div><div style="margin-top:9pt"><span><br/></span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:1pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:9pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_13"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART I</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_16"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1. BUSINESS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COMPANY OVERVIEW</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a leading provider of enzymatic solutions for efficient and scalable therapeutics manufacturing, and we leverage o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ur proprietary CodeEvolver</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> directed evolution technology platform to discover, develop, enhance, and commercialize novel, high-performance enzymes and other classes of proteins. Enzymes are naturally occurring biological molecules critical to almost all biochemical reactions that sustain life. They can be precisely engineered and optimized for specific functions, and to have particular characteristics, such as an ability to survive environments in which natural enzymes cannot, or to perform (bio)chemical transformations different than those for which they naturally evolved. We focus on leveraging our technology and capacity to enhance the properties and performance of enzymes to drive pivotal improvements in manufacturing of complex therapeutics across two key focus areas: our foundational, revenue-generating pharma biocatalysis business and our Enzyme-Catalyzed Oligonucleotide Synthesis&#8482; (&#8220;ECO Synthesis&#8482;&#8221;) manufacturing platform, which is comprised of enzymatic tools, and processes, designed to enable large-scale manufacture of RNA interference (&#8220;RNAi&#8221;) therapeutics. In July 2023, we announced that we discontinued investment in certain development programs, primarily in our novel biotherapeutics business segment. As part of this strategic prioritization, during 2024 we completed the divestiture and monetization of certain biotherapeutics assets as well as certain non-core life science assets, including in genomics and next generation sequencing applications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In our revenue-generating pharma biocatalysis business (formerly our pharmaceuticals manufacturing business), we utilize our CodeEvolver technology platform to develop optimized enzymes that are used by some of the world&#8217;s largest pharmaceutical companies to improve the efficiency and productivity of their manufacturing processes for small molecule therapeutics. Our unique enzymes drive improvements such as higher yields, increased purity, reduced energy usage and waste generation, all of which lead to improved efficiency and reduced costs in small-molecule manufacturing. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also use the CodeEvolver platform technology to develop enzymes for the synthesis of RNAi therapeutics through our ECO Synthesis manufacturing platform, where our enzymes are poised to deliver many of the same benefits we offer in pharma biocatalysis across purity, yield, and improved manufacturing efficiency. In November 2024, we presented data at the TIDES EU conference demonstrating the successful end-to-end enzymatic synthesis of an entire commercially approved small interfering ribonucleic acid (&#8220;siRNA&#8221;) therapeutic asset with the ECO Synthesis manufacturing platform. In addition to using full enzymatic sequential synthesis, adding one nucleotide at a time to synthesize the two strands from beginning to end, we demonstrated synthesis of the same siRNA asset using three other routes utilizing enzymatic ligation with our double-stranded RNA (&#8220;dsRNA&#8221;) ligase, which can stitch together fragments of chemically and/or enzymatically synthesized RNA to form the full siRNA drug structure. For the three other routes, our data highlighted that full-length oligos of equal quality and yields were obtained whether the fragments were made with enzymes or by traditional phosphoramididte chemistry. At the end of 2024, we completed the build out of our ECO Synthesis Innovation Lab, a facility that uses our ECO Synthesis manufacturing platform to synthesize gram-scale quantities of a customer&#8217;s desired siRNA construct suitable for pre-clinical testing. In addition, it allows us to provide process development, analytical method development and other manufacturing process optimization which is required before the siRNA enters clinical-stage manufacturing and testing. In 2025, we expect to manufacture </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">good laboratory practice</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (&#8220;GLP&#8221;)-grade siRNA for customers in our Innovation Lab under development services contracts model, and we anticipate entering a partnership with a large-scale </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">contract development and manufacturing organization (&#8220;CDMO&#8221;) </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">to use our ECO platform of enzymatic tools and processes to synthesize </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">good manufacturing practices (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">GMP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">-grade siRNA drug substance for our customers. We expect to expand our enzymatic tools and process offerings as we further enhance the ECO Synthesis platform to address the overall market needs for scalable and sustainable RNAi manufacturing.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">History and Core Technology</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a pioneer in harnessing computational technologies to drive biology advancements. Since 2002, we have made substantial investments in the development of our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform, the primary source of our competitive advantage for our business. The CodeEvolver technology platform has the power to transform the performance of an enzyme, tailoring it for a specific application and/or process. Using powerful machine learning tools and sophisticated molecular, cellular, and bioanalytical workflows, we design and screen libraries of thousands of variants every few weeks. Content-rich libraries screened under real-world conditions can yield dense and valuable datasets, which when data-mined effectively enables us to optimize multiple parameters in parallel. The resulting evolved variants often have a combination of enhanced properties, such as increased activity, specificity, and stability under desired conditions, or improved manufacturability in the production host. These enhanced properties provide differentiated technical performance in the target application and can provide our customers increased value in the commercial deployment of their products.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Key Strategic Focus Areas</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We provide enzyme-based solutions to our clients that address complex therapeutic manufacturing challenges in the areas of pharma biocatalysis and RNAi manufacturing. Both areas overlap in the technical enzyme engineering expertise required and also include similar potential customers. Many of our longstanding pharma biocatalysis customers are currently investing in both pharma biocatalysis for the development of small-molecule therapeutics and in the development of RNAi therapeutics, providing us a unique advantage in terms of our commercial reach. Further, our pharma biocatalysis business establishes credibility for the ECO Synthesis manufacturing platform by demonstrating our proven history of engineering technically complex enzymes for large pharmaceutical companies and effectively scaling up to multiple metric tons of manufactured product using our existing platforms.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pharma Biocatalysis</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe the pharmaceutical industry represents a significant market opportunity for our enzymes as pharmaceutical companies constantly developing new small molecule drugs and are under significant competitive pressure both to improve manufacturing efficiencies and to increase the speed to market for their products. To address these pressures, pharmaceutical companies are driven to identify reliable, cost-effective, and sustainable manufacturing processes to produce both their new drug candidates and their existing products, while not impacting drug safety and efficacy. Manufacturing economies of scale are increasingly important to our pharmaceutical customers as they get closer to their commercial drug launch. Over the lifecycle of the drug, market pressures further intensify as pharmaceutical companies lose their patent exclusivities and begin to experience competition from generic manufacturers of their products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Many of our customers are large global pharmaceutical companies who partner with us to develop engineered enzymes for use as biocatalysts, meeting precisely defined criteria. Their goals are to improve the efficiency, productivity and sustainability of their manufacturing processes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we sell enzymes as biocatalysts to pharmaceutical manufacturers</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> for 16 therapeutic drugs </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">that are currently approved for commercial sales.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We currently sell these enzymes, that have already been engineered and installed in a customer&#8217;s commercial manufacturing process at multi-kilograms to metric tons per annum scale. For example, we sell enzymes to Merck, Sharp &amp; Dohme (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Merck&#8221;) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">for their manufacture of sitagliptin, the active ingredient in JANUVIA, to Urovant Sciences GmbH (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Urovant</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) and KYORIN Pharmaceutical Co., Ltd. (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Kyorin</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) for the manufacture of vibegron, the active ingredient in Urovant&#8217;s GEMTESA and Kyorin&#8217;s BEOVA products for the treatment of overactive bladder, as well as supporting other products and customers for which public disclosures have not been made.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to these larger volumes of enzymes that are sold for our customers&#8217; ongoing commercial requirements, we also sell smaller quantities of engineered enzymes for use in a customer&#8217;s clinical-stage manufacturing. As of December&#160;31, 2024, Codexis is selling enzymes to pharmaceutical manufacturers f</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or 14 dr</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ug candidates currently in Phase 2 and Phase 3 clinical trials, or to customers working to convert to an enzymatic manufacturing process for drugs that have been commercially approved. We are focused on expanding this pipeline to ensure our ability to grow this business over time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finally, we also sell even smaller quantities of enzymes (typically grams to multi-kilogram scale) to customers for manufacturing and testing in their discovery and pre-clinical phase.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to the sale of enzymes, we also offer contracted research and development partnerships to our customers. These research and development activities are typically governed by collaboration agreements, which often contain research and development fees and intellectual property provisions, under which we screen and/or engineer enzymes for customers in connection with their process development efforts. In these collaborations, we typically receive consideration in the form of one or more of the following: upfront payments, milestone payments, payments for screening and engineering, followed by fees for manufacturing scale-up and supply of enzymes, licensing fees and/or royalties as the customer&#8217;s product commercializes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have licensed our CodeEvolver technology platform to pharmaceutical companies to help them develop custom-designed enzymes that are highly optimized for efficient manufacturing processes. To date, we have entered into platform technology licensing agreements with each of GlaxoSmithKline Intellectual Property Development Limited, a subsidiary of GlaxoSmithKline plc (&#8220;GSK&#8221;), Merck &amp; Co., Inc. (&#8220;Merck &amp; Co&#8221;) and Novartis Pharma AG (&#8220;Novartis&#8221;).</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">ECO Synthesis Manufacturing Platform</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">ECO Synthesis Overview</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A key strategic priority for Codexis is the advancement and commercialization of our ECO Synthesis manufacturing platform, which is designed to enable the commercial scale manufacture of RNAi therapeutics. As of December 31, 2024, there are six approved siRNA therapeutics on the market in the United States, primarily targeting rare orphan disease indications. However, there are more than 450 RNAi therapeutic assets in development, including over one hundred that are in Phase 2 and Phase 3 clinical trials, with more th</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">an 40</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of these targeting large disease indications such as Alzheimer&#8217;s, hyperlipidemia and hypertension. We expect worldwide demand for RNAi therapeutics to grow significantly as RNAi therapeutic assets progress through clinical development and are commercially approved. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The current industry standard for manufacturing RNAi therapeutics is a well-established, chemical-based method commonly called solid-phase oligonucleotide synthesis (&#8220;SPOS&#8221;) utilizing phosphoramidite chemistry. This approach has existed for more than forty years and works effectively for small-scale manufacturing required during the discovery stage of clinical development. However, SPOS and phosphoramidite chemistry face multiple limitations in the context of commercial-scale manufacture of RNAi therapeutics. This approach requires significant infrastructure and capital investment to meet the anticipated future growth in demand for RNAi therapeutics. SPOS and phosphoramidite chemistry are also currently limited to single-digit kilogram synthesis batch sizes, which presents challenges around quality control and scalability. Further, chemical synthesis requires large volumes of acetonitrile, a highly-flammable, organic solvent with high waste disposal costs, to facilitate the reaction environment necessary to produce RNAi therapeutics. As additional RNAi therapeutic candidates are approved for large disease indications, we believe using traditional SPOS and phosphoramidite chemical synthesis for commercial scale production will become prohibitively expensive, time-intensive, and challenging for many drug developers seeking to produce enough drug substance to address patient indications that require dosing more than 1 million patients annually.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the ECO Synthesis manufacturing platform presents several advantages to potentially address the limitations of SPOS and phosphoramidite chemistry. First, the platform is being developed to integrate within existing manufacturing facilities and utilizes equipment currently available in the industry, potentially eliminating much of the infrastructure investment required for commercial scale manufacturing of RNAi therapeutics with phosphoramidite chemistry. The ECO Synthesis manufacturing platform is also being designed to manufacture tens to hundreds of kilograms of high-purity RNA per synthesis batch, with a closed-loop system intended to increase volumetric reagent efficiency which enables large batch synthesis. Finally, our process is aqueous based, potentially mitigating the need for high volumes of acetonitrile, significantly decreasing chemical waste streams, and reducing heavy disposal and purification costs.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">At the TIDES Europe meeting in November 2024, we presented data in a joint poster presentation with Bachem, one of the world&#8217;s leading CDMOs in oligonucleotide manufacturing, the data provided compelling external validation of the superior performance of our engineered dsRNA ligases over the wild type enzymes in use today across both volumetric productivity and substrate versatility. We also announced we completed a proof-of-concept technical collaboration with a major siRNA drug innovator, where we synthesized their desired oligonucleotide fragments using our enzymatic process.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">ECO Synthesis Innovation Lab</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We completed the build-out of our ECO Synthesis Innovation Lab at the end of 2024. This facility allows us to optimize the development and scaling of a specific manufacturing process of a customer&#8217;s specific siRNA asset before completing the technology transfer to a CDMO partner for bulk GMP-grade production of drug substance to supply the customer&#8217;s clinical trials and eventual commercialization. It is also designed to enable the manufacture of GLP-grade RNAi therapeutic material in sufficient quantities to support customers&#8217; preclinical development.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The ECO Synthesis manufacturing platform is a set of enzymatic tools and processes that are used together to manufacture siRNA. With this platform, we work with our customers to optimize the manufacturing of the customer&#8217;s asset. This platform allows us to use enzymatically synthesized RNAi sequences, to conjugate tissue targeting moieties such as GalNAc, onto an RNA strand, which is a common modification included on RNAi therapeutics to assist with targeted tissue delivery and to ligate (connect) RNAi sequences together. All of these capabilities are used to create a full-length and completed RNAi therapeutic asset.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our goal is to be a value-added service provided to pharmaceutical innovators. Many of our potential clients seek expertise in areas that they cannot develop on their own, but seek to partner with companies who provide expertise in manufacturing. Through our ECO Synthesis platform, we offer a true partnership approach to drug manufacturing. The services we provide include:</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Method Development and Analytics: </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers require qualified methods to measure and ensure purity of their siRNA construct before going into the clinic. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Manufacturing</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Process development and optimization are necessary to produce GLP material of a customer&#8217;s siRNA asset for preclinical testing prior to filing an IND and entering the clinic. We provide these services through our ECO Synthesis Innovation Lab</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We are exploring expanding our services to include GMP manufacturing, which would enable us to provide clinical grade material to our clients for at least Phase 1 clinical studies.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Ongoing Support. We offer ongoing regulatory and Chemistry, Manufacturing and Controls (&#8220;CMC&#8221;) documentation throughout preclinical studies and clinical trials to support our clients&#8217; regulatory filings and interactions with the United States Food and Drug Administration (&#8220;FDA&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Potential Commercial Opportunity of RNAi Manufacturing</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe we have significant competitive advantages to successfully enter RNAi manufacturing with our proprietary ECO Synthesis manufacturing platform, largely stemming from synergies with our pharma biocatalysis expertise in terms of technical knowledge and commercial reach. Many of our current customers are also developing RNAi therapeutics. We believe their familiarity with our ability to engineer and scale complex enzymes is a significant commercial advantage for our ECO Synthesis manufacturing platform. However, there are also key differences that make this platform a compelling opportunity as compared to our existing pharma biocatalysis business. Pharma biocatalysis generally requires one-to-one custom enzyme engineering projects, which involve significant time and resource investment from Codexis. Our top five selling pharma biocatalysis enzymes in 2024, excluding sales of CDX-616 to Pfizer Inc. (&#8220;Pfizer&#8221;) related to PAXLOVID, generated on average between $2.0 million to $9.0 million annually per enzyme between 2021 and 2024. By contrast, the ECO Synthesis manufacturing platform could be applicable to many pharmaceutical and CDMO customers and has the potential to manufacture multiple different RNAi therapeutic assets with the same of enzymes and processes. Further, the potential scalability of our solution is differentiated from phosphoramidite chemistry, which is limited in batch size and requires high volumes of toxic solvent. We believe that the ECO Synthesis manufacturing platform could enable CDMOs and drug developers to scale production of RNA therapeutics with significantly less capital expenditure for infrastructure capacity and as a result, could potentially command significantly better economic terms than the current annual revenues for pharma biocatalysis enzymes.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Our business model for the ECO Synthesis manufacturing platform is centered around selling contract development and manufacturing services delivered through the ECO Synthesis Innovation Lab. These activities are typically governed by development agreements which include fees for process development, process optimization, analytical method development and qualification, CMC documentation and small-scale manufacturing of siRNA drug substance.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Differentiated Enzymes </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to RNAi manufacturing and pharma biocatalysis applications, we have also applied our CodeEvolver technology platform to develop customized enzymes for customers using across other molecular biology applications, such as template dependent mRNA manufacturing, next generation sequencing, diagnostic testing and DNA oligonucleotide synthesis. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a co-marketing and enzyme supply collaboration agreement with Alphazyme LLC (&#8220;Alphazyme&#8221;) for the production and co-marketing of enzymes for life science applications. This collaboration enabled the commercialization of Codex HiFi DNA Polymerase, Codex HiFi Hot Start DNA Polymerase, Codex HiFi Hot Start 2X NGS Mix, Codex HiCap RNA Polymerase, Codex HiFi UL DNA Polymerase, and Codex HiTemp Reverse Transcriptase. In September 2024, we entered into a new non-exclusive commercial and manufacturing license agreement with Alphazyme (terminating the prior agreement), including licenses for the Codex HiFi DNA Polymerase, Codex HiTemp Reverse Transcriptase, Codex HiRev Isothermal Polymerase and other enzymes that were in development directed towards genomics and diagnostics applications prior to our strategic shift announced in July 2023. Under the terms of the agreement, we are eligible to receive sales-based royalties. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Master Collaboration and Research Agreement with Molecular Assemblies, Inc. (&#8220;MAI</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) (the &#8220;MAI Agreement&#8221;), and between June 2020 and April 2022, we leveraged our CodeEvolver technology platform to improve the DNA polymerase enzymes that are critical for enzymatic DNA synthesis. At the time we entered into the MAI Agreement, we purchased </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in MAI&#8217;s Series A financing. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2022, we and MAI announced that we had entered into a Commercial License and Enzyme Supply Agreement with MAI </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(the &#8220;MAI Supply Agreement&#8221;) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">under which Codexis shall manufacture and supply to MAI an enzyme engineered under the MAI Agreement for use in a specific field. Between 2020 and 2024, in connection with the execution of the MAI Agreement and via separate purchases, we acquired shares of MAI&#8217;s Series A and B preferred stock. On January 28, 2025, Maravai LifeSciences, Inc. (&#8220;Maravai&#8221;), a global provider of life science reagents and services to researchers and biotech innovators, announced its acquisition of intellectual property and relevant assets from MAI. In January 2025, MAI assigned the MAI Supply Agreement to Maravai in connection with the sale of its related assets to Maravai.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell, Inc. (&#8220;seqWell&#8221;), a privately held life sciences company, pursuant to which we purchased </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1,000,000</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of seqWell&#8217;s Series C preferred stock for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#8220;seqWell Agreement&#8221;), pursuant to which we provided research and experimental screening and enzyme engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e received 205,279 shares of seqWell's common stock from research and development services with seqWell i</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">n the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">88,256</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of seqWell's Series C-1 preferred stock and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44,128</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> common stock warrants for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.4 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In line with our strategy relating to non-core Life Sciences assets, in January 2025 we sold assets that were developed under the seqWell Agreement to seqWell in exchange for the right to receive a cash payment upon future events and a warrant to purchase seqWell&#8217;s common stock exercisable upon future events, and terminated the seqWell Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, we entered into an exclusive licensing agreement with Aldevron LLC (&#8220;Aldevron&#8221;), a global leader in the custom development and manufacture of plasmid DNA, RNA and proteins for the biotech industry, whereby Aldevron licensed our Codex HiCap RNA Polymerase. Under the terms of the deal, Aldevron received global manufacturing and commercialization rights to the Codex HiCap RNA Polymerase in exchange for payments for near-term technical milestones, along with commercial milestones and sales-based royalties for research use only material as well as GMP material.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December, 2024, we entered into a license agreement whereby Pfizer obtained a license to make a specific Codexis enzyme for use in the manufacture of Pfizer&#8217;s products. As part of the agreement, Pfizer utilized remaining credit from a supply agreement between the parties toward the upfront fee. Under the terms of the license agreement, Codexis is eligible to receive development and sales-based milestone payments based upon the future use of the enzyme in drug substance manufacturing.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Licensing Our CodeEvolver Directed Evolution Technology Platform</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Novartis</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2019, we entered into a Platform Technology Transfer and License Agreement (the &#8220;Novartis CodeEvolver Agreement&#8221;) with Novartis. The Novartis CodeEvolver Agreement allows Novartis to use our proprietary CodeEvolver platform technology in the field of human healthcare. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the terms of the Novartis CodeEvolver Agreement, we granted Novartis a worldwide license to use certain patents, patent applications and know-how from our CodeEvolver technology platform to research, develop and manufacture novel enzymes for use by or on behalf of Novartis as biocatalysts in the chemical synthesis of small molecule and bioconjugate APIs. The license is exclusive for the research, development and manufacture of novel enzymes for use by Novartis as biocatalysts in the chemical synthesis of API owned or controlled by Novartis (&#8220;Novartis Exclusive Field&#8221;) and non-exclusive for the research, development and manufacture of novel enzymes for use by Novartis in the chemical synthesis of API not owned or controlled by Novartis or any third party (&#8220;Novartis Non-Exclusive Field&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver technology platform to Novartis (the &#8220;Technology Transfer Period&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Novartis CodeEvolver Agreement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we received an upfront payment of $5.0&#160;million shortly after the effective date. We completed the second technology milestone transfer under the agreement and received a milestone payment of $4.0&#160;million in 2020. We have also received an aggregate of $5.0&#160;million for the completion of the third technology transfer milestone in 2021. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#8220;Improvements Term&#8221;), Novartis will pay us annual payments over four years which amount to an additional $8.0&#160;million in aggregate. We also have the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. These product-related usage payments, if any, will be paid by Novartis to Codexis for each quarter that Novartis manufactures API using a CodeEvolver-developed enzyme. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The licenses to Novartis are granted under patents, patent applications and know-how that Codexis owns or controls as of the effective date of the Novartis CodeEvolver Agreement and that cover the CodeEvolver technology platform. Any improvements to the CodeEvolver technology platform during the Technology Transfer Period will also be included in the license grants from Codexis to Novartis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Biotherapeutics Divestitures </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our biotherapeutic product candidates, which were in clinical and preclinical development, were discovered using our proprietary CodeEvolver technology platform and ranged from orally delivered enzymes to engineered transgenes for delivery as gene therapies. The most advanced of our biotherapeutics programs was CDX-7108, a potent lipase intended for use as a potential treatment for exocrine pancreatic insufficiency (&#8220;EPI&#8221;), which was being developed under a Strategic Collaboration Agreement with Nestl&#233; Health Science (&#8220;Nestl&#233;&#8221;) (the &#8220;Nestl&#233; SCA&#8221;). As part of the Nestl&#233; SCA and a related development agreement, we and Nestl&#233; completed a Phase 1 clinical trial of CDX-7108. In December 2023, we entered into an acquisition agreement with Nestl&#233; (the &#8220;Acquisition Agreement&#8221;), pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#233; and terminate the Nestl&#233; SCA and development agreement. Under the terms of the Acquisition Agreement, Nestl&#233; is solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, with Codexis retaining an economic interest in the program through an upfront payment, future potential milestone payments and net-sales based royalties.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, we used our CodeEvolver technology platform to engineer a series of transgenes that code for enzymes that may be used as gene therapies to treat rare lysosomal storage disorders, such as Fabry Disease and Pompe Disease, as well as a blood factor disorder, with Takeda Pharmaceutical Co. Ltd. (&#8220;Takeda&#8221;). In April 2023, Takeda discontinued its efforts in adeno-associated virus (&#8220;AAV&#8221;) gene therapy, including these development programs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2024, we entered into an asset purchase agreement with Crosswalk Therapeutics (&#8220;Crosswalk&#8221;) for our investigational Fabry and Pompe disease compounds, both of which were previously part of our collaboration agreement with Takeda. Under the terms of the agreement with Crosswalk, we are eligible to receive future development and commercial milestone payments in addition to a low-to-mid single-digit percentage net sales-based royalty.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, in April 2024 we entered into an asset acquisition agreement with another private biotherapeutics company under which we divested assets related to our investigational homocystinuria and maple syrup urine disease programs, and in June 2024, we entered into an asset sale agreement under which we divested assets related to our programs for the GLB1, GBM1, and SGSH genes, and our investigational AAV capsid technology. Under these agreements, Codexis is eligible to receive milestone and earnout payments.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OUR STRATEGY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our strategy is to grow our revenues, profits, and stockholder value by selling customized enzymes and providing services from our ECO Synthesis platform. We intend to monetize our technology in the following ways:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Growing our foundational revenue-generating pharma biocatalysis business.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> We intend to pursue opportunities in the pharmaceutical market to use our enzymes to improve the manufacturing efficiencies for the production of small-molecule drugs. We intend to increase the number of pharmaceutical customers and products that utilize and benefit from our novel, enabling engineered enzymes. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Developing and commercializing our ECO Synthesis manufacturing platform for use in RNAi manufacturing</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We intend to enable customers</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> to manufacture RNAi therapeutics at commercial scale. This also includes a hybrid ligation approach using our dsRNA ligase, a completely enzymatic route, and the development of enzymes and processes to enable the manufacture of building blocks, starter materials, and targeting moieties. We intend to increase the number of customers utilizing our ECO Synthesis manufacturing platform by providing development and manufacturing services through our ECO Synthesis Innovation Lab. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Monetizing non-core assets and leveraging </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">channel partners with strong commercial reach to drive penetration of other developed, non-core enzymes. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Consistent with our strategy to focus on programs that we believe have the strongest </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">probability of creating significant value in the near-term and beyond, we have monetized non-core assets and are leveraging channel partners with stronger commercial reach to drive penetration of other developed, non-core enzymes. Examples of this strategy include monetizing CDX-7108 through the purchase agreement with Nestl</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#233;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and the exclusive licensing agreement with Aldevron for our </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Codex HiCap RNA Polymerase, both of which were announced in December 2023, as well as the exclusive licensing agreement with Roche in February 2024 for the newly engineered DNA ligase, the non-exclusive license with Alphazyme in September 2024 for a portfolio of our life sciences enzymes, and the purchase agreement for transposase with seqWell executed in January 2025.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Advancement of our CodeEvolver platform to maintain leadership in enzyme engineering</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We leverage our proprietary CodeEvolver directed evolution technology platform to discover, develop, enhance, and commercialize novel, high-performance enzymes for the manufacturing of complex therapeutics. We intend to maintain technology leadership in enzyme engineering through continued investments in data science, computational biology, and laboratory operational efficiency to maintain our primary source of competitive advantage.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INTELLECTUAL PROPERTY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our success depends in large part on our ability to protect our proprietary technology, products and services under patent, copyright, trademark and trade secret laws. We also rely heavily on confidentiality and non-disclosure and other contractual agreements for further protection of our proprietary technology, products and services. Protection of our proprietary rights, titles and interests is important for us to offer our customers and partners proprietary technology, products and services that are not available from our competitors, and to exclude our competitors from practicing technology that we have developed or exclusively licensed from other parties. For example, our ability to successfully supply innovator pharmaceutical manufacturers as customers depends on our ability to supply proprietary enzymes or methods for making pharmaceutical intermediates or APIs that are not available from our competitors. Likewise, in the generic pharmaceutical area, protection of our proprietary technology, products and services directed to our enzymes and methods of producing pharmaceutical products, through patent or trade secret laws or other legal protections is important for us and our customers to maintain a lower cost production advantage over competitors. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we owned or controlled approximate</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ly 1,760 active issued patents </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">and pending patent applications in the United States and in various foreign jurisdictions, many of which are directed to our enabling technologies and specific methods and products that support our business in the pharmaceutical and oligonucleotide synthesis markets. This portfolio also includes patents and pending patent applications in the biotherapeutics, mo</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">lecular diagnostics, and other markets. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">our patents and pending patent applications, if issued, have terms that expire between 2025 and approximately 2045. Our United States (&#8220;U.S.&#8221;) patents and pending patent applications directed to the CodeEvolver technology platform developed internally by us have terms that expire between 2029 and approximately 2034. It </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">is possible that some U.S. patents and patent applications (if issued) may be entitled to patent term extensions and/or patent term adjustments, which would extend the protection beyond these expiration dates. It is also possible that some patents and patent applications (if issued) in other jurisdictions will be entitled to additional patent terms. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our current intellectual property rights also include patents, trademarks, copyrights, software and certain assumed contracts that we acquired from Maxygen, Inc. (&#8220;Maxygen&#8221;) in October 2010, which are associated with directed evolution technology, known as the MolecularBreeding technology platform developed by Maxygen. The intellectual property rights and other related assets that we acquired from Maxygen continue to be subject to existing exclusive and non-exclusive license rights granted by Maxygen to third parties. We continue to file new patent applications in our business areas of interest, for which terms generally extend 20 years from the non-provisional filing date in the United States. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we owned approximately 70 trademark registrations in the United States and foreign jurisdictions, as well as various common law trademarks. These include, but are not limited to: Codexis, Codex, CodeEvolver, MOSAIC, SAGE, MicroCYP, MCYP, ProSAR, Unlock the Power of Proteins, the Codexis Protein Engineering Experts logo, Strategist, Continuity, Ameli, Forager, Analogene, Harvester, Atoms, Riptide, APS and a Codexis design mark (i.e., the stylized Codexis logo), as well as pending registration applications for </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis and ecoRNA</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COMPETITION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face differing forms of competition in pharmaceutical biocatalysis and RNAi therapeutics manufacturing, as set forth below.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pharma Biocatalysis</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We market our enzyme biocatalyst products and services to manufacturers of small molecule pharmaceutical intermediates and APIs. Our primary competitors in that market are companies marketing either conventional, non-enzymatic catalysts or alternative biocatalyst products and services, or from full-service CDMOs offering conventional chemistry and biocatalytic approaches to the production of APIs. We also face competition from existing in-house technologies (both biocatalysis and conventional chemistries) within our client and potential client companies. The principal methods of competition and competitive differentiation in this market are price, product quality and biocatalyst performance, including manufacturing yield, safety and environmental benefits and speed of product delivery. Pharmaceutical manufacturers that use biocatalytic processes can face competition from manufacturers that use more conventional processes and/or manufacturers that are based in regions (such as India and China) with lower operating, regulatory, safety and environmental costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also compete with companies developing and marketing conventional catalysts including, for example, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Solvias AG, BASF, Johnson-Matthey and Takasago International Corporation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for supplying enzymes for use in pharma biocatalysis is fragmented. There is competition from large industrial enzyme companies, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as well as subsidiaries of larger contract research/contract manufacturing organizations, such as DSM Firmenich, Cambrex Corporation, Lonza, WuXi STA and Almac Group Ltd. Some fermentation pathway design companies, such as Ginkgo Bioworks,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> whose traditional focus has been to design microorganisms that express small molecule chemicals, could extend into designing organisms that express enzymes. There is also competition in the enzyme customization and optimization area from several smaller companies, such </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as BRAIN AG, evoxx technologies GmbH, c-LEcta GmbH, Enzymicals AG, and Enzymaster.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for the manufacture and supply of APIs and intermediates is large, with many established companies. These companies include many of our large innovator and generic pharmaceutical customers, such as </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Merck, GSK, Novartis, Pfizer, Bristol-Myers Squibb Company (&#8220;Bristol-Myers&#8221;), Kyorin, Urovant, and Teva Pharmaceutical Industries Limited (&#8220;Teva&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which have significant internal research and development efforts directed at developing processes to manufacture APIs and intermediates for use in their drug product manufacturing. There is also a large network of CDMOs servicing the innovator companies with supply of APIs and/or intermediates. These C(D)MOs include </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cambrex Corporation, Asymchem, WuXi STA and Almac Group Ltd, among many others.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> The processes used by these companies (both C(D)MOs and innovators) include classical organic chemistry reactions, chemo-catalytic reactions, biocatalytic reactions or combinations thereof. Our biocatalyst-based manufacturing processes must compete effectively on cost and efficiency with these internally developed routes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that our principal advantage is our ability to rapidly deliver customized enzymes for existing and new intermediates and APIs in the pharma biocatalysis market. This capability has allowed us to create a breadth of enzymes with improved performance characteristics including, for example, better activity, stability, and activity on a range of substrates, compared to traditional chemistry-based manufacturing processes and naturally occurring (and thus not optimized) biocatalysts. We believe that our CodeEvolver technology platform can provide substantially superior results, in shorter time frames, than companies offering competing enzyme development services. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">ECO Synthesis Manufacturing Platform for RNAi Therapeutics</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We market our ECO Synthesis manufacturing platform and contract development services through our ECO Synthesis Innovation Lab to drug sponsors developing RNAi therapeutics. SPOS using phosphoramidite chemistry is the current and long-established industry standard for the manufacture of RNAi therapeutics, examples including antisense oligonucleotides, siRNA, RNA aptamers, and guide RNA. CDMOs in this space, such as Agilent Technologies, have made significant capital investment to expand their RNA manufacturing capabilities using phosphoramidite chemistry. In addition, CDMOs and large pharmaceutical companies are seeking to make incremental improvements to phosphoramidite chemistry, including the development of ligation-based approaches, liquid-phase synthesis, and solvent recycling technologies. However, many drug developers and CDMOs are already exploring the use of enzymatic technology, including our dsRNA ligase, in their manufacturing processes due to the potential benefits around increased yield, purity, and efficiency. Additionally, there are opportunities for us to collaborate with CDMO partners to enable the manufacture of siRNA material at a greater scale than is currently possible within Codexis facilities. In 2025, we anticipate signing and announcing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a CDMO scale-up partnership to provide a path to enzymatically synthesized GMP-grade siRNA material to drug developer customers in the near term.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There are also multiple early-stage competitors who are pursuing fully enzymatic approaches to the manufacture of RNA, including EnPlusOne Biosciences, a private startup company, and a UK-based consortium led by the Centre for Process Innovation (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CPI</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and consisting of multiple academic and research organizations, including The University of Manchester and large pharmaceutical companies, including AstraZeneca plc and Novartis. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Core Technology</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a leader in the field of enzyme engineering to create novel enzymes, and our work across pharma biocatalysis and the ECO Synthesis manufacturing platform relies on our core technology. We are aware that other companies, organizations and persons have developed technologies that appear to have some similarities to our patented proprietary technologies. For example, we are aware that other companies, includin</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">g Ginkgo Bioworks, BRAIN, and Enzymicals AG, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">have alternative methods for obtaining and generating genetic diversity or use mutagenesis techniques to produce genetic diversity. Some companies, including Biomatter Designs, Arzeda, and Enzymaster, leverage predictive computational algorithms to guide enzyme engineering efforts. In addition, academic institutions such as the California Institute of Technology, University of Washington, University of Manchester, and the Austrian Centre of Industrial Biotechnology are also working in this field. This field is highly competitive with companies and academic and research institutions actively seeking to develop technologies that could be competitive with our technologies.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Technological developments by others may result in our products and technologies, as well as products manufactured by our customers using our biocatalysts, becoming obsolete. We monitor publications and patents that relate to directed molecular evolution, as well as computational design and modeling tools, to be aware of developments in the field and evaluate appropriate courses of action in relation to these developments. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Many of our competitors have substantially greater manufacturing, financial, research and development, personnel and marketing resources than we do. As a result, our competitors may be able to develop competing and/or superior technologies and processes, and compete more aggressively and sustain that competition over a longer period of time than we could. Our technologies and products may be rendered obsolete or uneconomical by technological advances or entirely different approaches developed by one or more of our competitors.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CUSTOMERS </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on certain key customers for a significant portion of our total revenues and our accounts receivable balances. For the year ended December&#160;31, 2024, four customers accounted for approximately 18%, 13%, 10%, and 10% of our total revenues. As of December&#160;31, 2024, four customers accounted for approximately 18%, 16%, 12%, and 10% of our accounts receivable balances. For more information, see Note 15, &#8220;Segment, Geographical and Other Revenue Information&#8221; in the Notes to the Consolidated Financial Statements set forth in Item 8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OPERATIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our corporate headquarters are located in Redwood City, California and provide general administrative support to our business and are the center of our research, development and business operations. We have limited internal manufacturing capacity at our headquarters in Redwood City. For o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ur </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">pharma biocatalysis business, we expect to rely on third-party manufacturers for commercial production of our biocatalysts for the foreseeable future. Our in-house manufacturing is dedicated to producing both Codex biocatalyst panels and kits and enzymes for use by our customers in pilot scale and clinical production. We also supply initial commercial quantities of biocatalysts for use by our collaborators to produce pharmaceutical intermediates and manufacture biocatalysts that we sell. For the ECO Synthesis manufacturing platform, our ECO Synthesis Innovation Lab is located within our corporate headquarters and is designed to supply GLP-grade material in sufficient quantities to support customers&#8217; preclinical development. We expect to partner with one or more CDMOs for bulk GMP-grade siRNA production to supply customers&#8217; clinical trials and beyond in the near-term. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In September 2023, we announced that we had entered into an agreement for the assignment and assumption of lease for our San Carlos, California facility. In the first quarter of 2021, we entered into an arrangement to lease this facility to serve as an additional office and research and development laboratory space which we occupied beginning December 20</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21. As part of the restructuring of our business announced in July 2023, we consolidated operations to our Redwood City headquarters and discontinued investment in biotherapeutics. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For additional information on the San Carlos facility, s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 13, &#8220;Commitments and Contingencies&#8221; in the Notes to the Consolidated Financial Statements set forth in Item 8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our research and development operations include efforts directed towards engineering biocatalysts, bioprocess development, cellular engineering, biocatalyst screening, metabolites, strain improvement, fermentation development and process engineering. We conduct enzyme evolution, enzyme production development, microbial bioprocess development, cellular engineering, microbial evolution and process engineering evaluations and design primarily at our headquarters in Redwood City, California. Manufacturing of our enzymes is conducted primarily in four locations: at our in-house facility in Redwood City, California and at third-party contract manufacturing organizations (&#8220;CMOs&#8221;)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">: Lactosan GmbH &amp; Co. KG (&#8220;Lactosan&#8221;) in Kapfenberg, Austria, ACS Dobfar S.p.A. (&#8220;ACSD&#8221;) (formerly known as DPhar S.p.A.) in Anagni, Italy, and Sekisui Diagnostics (UK) Ltd. (&#8220;Sekisui&#8221;) in Maidstone, United Kingdom. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Generally, we perform smaller scale manufacturing in-house and outsource larger scale manufacturing, representing a large percentage of our production of novel enzymes, to CMOs.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">GOVERNMENT REGULATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our enzymes are used by pharmaceutical and biopharmaceutical companies in the manufacture of their drug or biologic product candidates and finished products. In the United States, the manufacture, distribution, marketing, and sale of drug products and the provision of certain services for development-stage pharmaceutical and biotechnology products are subject to extensive ongoing regulation by the United States Food and Drug Administration (&#8220;FDA&#8221;), the United States Department of Health and Human Services (&#8220;HHS&#8221;), the Centers for Medicare and Medicaid Services (&#8220;CMS&#8221;), state boards of pharmacy, state health departments, various accrediting bodies, and similar regulatory authorities in other countries, including laws and regulations governing bribery, fraud, kickbacks, and false claims. The costs associated with complying with the various applicable federal, state, local, national, and international laws and regulations could be significant, and the failure to comply with such legal requirements could have an adverse effect on our results of operations and financial condition. The FDA extensively regulates, among other things, the research, development, testing, manufacture, quality control, import, export, safety, effectiveness, labeling, packaging, storage, distribution, record keeping, approval, advertising, promotion, marketing, post-approval monitoring, and post-approval reporting of drug and biologic products under the Federal Food, Drug and Cosmetic Act, its implementing regulations and other laws, including, in the case of biologics, the Public Health Service Act. Our third-party contractors, collaborators, and customers will be required to navigate the various preclinical, clinical and commercial approval requirements of the governing regulatory agencies of the countries in which they wish to conduct studies or seek approval or licensure of their product candidates, which may include regulatory inspections for compliance with current good manufacturing practices (&#8220;cGMP&#8221;). The process of obtaining regulatory approvals and the subsequent compliance with applicable federal, state, local and foreign statutes and regulations require the expenditure of substantial time and financial resources. This regulatory scrutiny results in our customers imposing rigorous quality and other requirements on us as their supplier through supplier qualification processes and customer contracts and specifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The process required by the FDA before a drug or biologic may be marketed in the United States generally involves the following:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">completion of preclinical laboratory tests and animal studies performed in accordance with the FDA&#8217;s Good Laboratory Practice regulations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">submission to the FDA of an Investigational New Drug Application (&#8220;IND&#8221;), which must become effective before clinical trials in the United States may begin;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">performance of adequate and well-controlled human clinical trials to establish the safety and potency of the product candidate for each proposed indication, conducted in accordance with the FDA&#8217;s good clinical practice (&#8220;GCP&#8221;) regulations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">preparation and submission to the FDA of a new drug application (&#8220;NDA&#8221;) or biologics license application (&#8220;BLA&#8221;) after completion of all pivotal clinical trials;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">satisfactory completion of an FDA inspection of the manufacturing facility or facilities at which the product is produced to assess compliance with cGMP regulations and to assure that the facilities, methods and controls are adequate to preserve the drug's continued safety, purity and potency, and of selected clinical investigation sites to assess compliance with Good Clinical Practices, or GCPs; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">FDA review and approval of the NDA or BLA prior to any commercial marketing, sale or distribution of the product. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Environmental, Health and Safety Regulations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are responsible for ensuring an environmentally responsible, safe, and healthy workplace. We are required to abide by all relevant county, state and federal agency regulations for environmental, health and safety requirements and have the necessary procedure, permits, and licenses in place to operate accordingly. Our contracts with outside suppliers and vendors require compliance with applicable laws and regulations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">HUMAN CAPITAL RESOURCES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we had 188 full-time employees and part-time employees worldwide. Of these employees, 47 were engaged in research and development, 47 were engaged in operations and quality control and 94 were engaged in selling, general and administrative activities. None of our employees are represented by a labor union or covered by a collective bargaining agreement. Supported by our annual employee survey, we believe our relationship with our employees to be generally good. Our scientists, bioinformatics experts and other professionals work collaboratively as interdisciplinary teams to unlock and advance technological innovation. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Compensation, benefits and development</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our goal is to attract, motivate and retain talent with a focus on encouraging performance, promoting accountability and adhering to our company values. We offer competitive compensation and benefit programs including a company-matched 401(k) Plan, an Employee Stock Purchase Plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), stock options for eligible employees, health savings and flexible spending accounts, paid time off, education and training programs, and employee assistance programs. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Diversity, equity and inclusion</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are renewing our commitment to increase diversity and foster an inclusive work environment that supports our global workforce and the communities we serve. We recruit the best people for the job regardless of gender, ethnicity or other protected traits and it is our policy to not only comply with all laws applicable to discrimination in the workplace, but to promote a safe and equitable environment for all employees. Our diversity, equity and inclusion principles are also reflected in our employee training and policies. Our diversity, equity and inclusion policies are reviewed regularly and guided by our executive leadership team.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Health and safety</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are committed to maintaining a safe and healthy workplace for our employees. Our policies and practices are intended to protect our employees and the surrounding communities in which we operate.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CORPORATE &amp; AVAILABLE INFORMATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We were incorporated in Delaware in January 2002 as a wholly-owned subsidiary of Maxygen, Inc. We commenced independent operations in March 2002, after licensing core enabling technology from Maxygen, Inc. Our principal corporate offices are located at 200 Penobscot Drive, Redwood City, California 94063 and our telephone number is (650) 421-8100. Our internet address is www.codexis.com. The information on, or that can be accessed through, our website is not incorporated by reference into this Annual Report on Form 10-K or any other filings we make with the U.S. Securities and Exchange Commission (the &#8220;SEC&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make available on or through our website certain reports and amendments to those reports that we file with, or furnish to, the SEC in accordance with the Exchange Act. These include our Annual Reports on Form 10-K, our Quarterly Reports on Form 10-Q and our Current Reports on Form 8-K, and amendments to those reports filed or furnished pursuant to Section 13(a) or 15(d) of the Exchange Act. We make this information available on or through our website free of charge as soon as reasonably practicable after we electronically file the information with, or furnish it to, the SEC. Copies of this information may be obtained at the SEC website at www.sec.gov. The contents of these websites are not incorporated into this filing. Further, the references to website URLs are intended to be inactive textual references only.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Codexis,&#8221; the Codexis logo, ECO Synthesis, and other trademarks or service marks of Codexis, Inc., appearing in this Annual Report on Form 10-K are the property of Codexis, Inc. This Annual Report on Form 10-K contains additional trade names, trademarks and service marks of others, which are the property of their respective owners. Solely for convenience, trademarks and trade names referred to in this Annual Report on Form 10-K may appear without the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#174; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8482;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> symbols.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_19"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1A. RISK FACTORS </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">You should carefully consider the risks described below together with the other information set forth in this Annual Report on Form 10-K, which could materially affect our business, financial condition or future results. The risks described below are not the only risks facing our company. Risks and uncertainties not currently known to us or that we currently deem to be immaterial also may materially adversely affect our business, financial condition and/or operating results. Additional discussion of the material risks and uncertainties summarized in this risk factor summary, as well as certain other risks and uncertainties that we face, can be found in this section.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">RISK FACTORS SUMMARY</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a summary of the principal factors that cause an investment in the Company to be speculative or risky:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We have a history of net losses and we may not achieve or maintain profitability. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Therapeutics development prorams are highly regulated and expensive, and our enzyme products are complex and subject to quality control requirements. The ability of our customers, future customers or collaborators, including any company developing RNAi and other RNA-based therapeutics, to advance product candidates utilizing our products to clinical trials and to ultimately receive regulatory approvals is highly uncertain.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We believe that our products are exempt from Food, Drug, and Cosmetic Act (&#8220;FDCA&#8221;) requirements, but FDA or other regulators may disagree and find that our products are subject to such requirements.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are dependent on a limited number of customers.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Some of our product supply agreements with customers have finite duration and may not be extended or renewed.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The demand for our product depends in part on our customers' research and development and the clinical and market success of their products.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If we are unable to develop and commercialize new products for our target markets, our business and prospects will be harmed.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">A reduction or delay in government funding of research and development for our customers may adversely affect our business.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">With respect to customers purchasing our products for the manufacture of API for which they have exclusivity due to patent protection, the termination or expiration of such patent protection and any resulting generic competition may materially and adversely affect our revenues, financial condition or results of operations.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The services and offerings we provide are highly complex, and if we encounter problems providing the services or support required, our business could suffer.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Any productivity issues or higher-than-expected costs at our facilities could result in material and adverse impacts on our financial condition and results of operations.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are dependent on a limited number of third-party contract manufacturers for large scale production of substantially all of our enzymes.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are dependent on our collaborators, and our failure to successfully manage these relationships could prevent us from developing and commercializing many of our products. </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We have invested significant resources to enable enzymatic nucleic acid synthesis, which is based on novel ideas and technologies that are largely unproven.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">As a result of our strategic shift and our refined focus on the revenue-generating pharma biocatalysis business and the ECO Synthesis platform, we may fail to capitalize on other opportunities that may be more profitable or for which there is a greater likelihood of success.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Given our change in strategic direction, we may receive limited revenue or no future value from certain of our existing license agreements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The timing of customer orders and related product revenue recognition is unpredictable and may cause our operating results to vary significantly from quarter to quarter, which could adversely affect our stock price.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We use hazardous materials in our business, and we must comply with environmental laws and regulations.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may need additional capital in the future in order to expand our business.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may not be able to comply with the terms of our five-year term loan and security agreement (our &#8220;Loan Agreement&#8221;) with Innovatus Life Sciences Lending Fund I, LP (&#8220;Innovatus&#8221;), an affiliate of Innovatus Capital Partners, LLC</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Even if our customers or collaborators obtain regulatory approval for any products utilizing our enzymes, such products will remain subject to ongoing regulatory requirements, which may result in significant additional expense.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If we or our customers fail to comply with certain healthcare laws, including fraud and abuse laws, we could face substantial penalties and our business, results of operations, financial condition and prospects could be adversely affected.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Our efforts to prosecute, maintain, protect and/or defend our intellectual property rights may not be successful.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Third parties may claim that we are infringing, violating or misappropriating their intellectual property rights, which may subject us to costly and time-consuming litigation and prevent us from developing or commercializing our technology, products or services.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We may be involved in lawsuits to protect or enforce our intellectual property rights, which could be expensive, time-consuming and unsuccessful.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If our biocatalysts are stolen, misappropriated or reverse engineered, others could use these biocatalysts to produce competing products.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We are subject to anti-takeover provisions in our certificate of incorporation and bylaws and under Delaware law that could delay or prevent an acquisition of our company.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Market and economic conditions may negatively impact our business, financial condition, and share price.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Business interruptions resulting from political events, disasters or other disturbances could delay us in the process of developing our products and could disrupt our sales.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Our Business and Strategy </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have a history of net losses and we may not achieve or maintain profitability.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have incurred net losses since our inception, including losses of $65.3 million, $76.2 million, and $33.6 million for the years ended December 31, 2024, 2023, and 2022, respectively. As of December&#160;31, 2024, we had an accumulated deficit of $562.8 million. If we are unable to continue to successfully develop and commercialize products in our pharma biocatalysis business, increase sales of existing products and services, develop and commercialize our ECO Synthesis manufacturing platform, and or develop new products or services, or otherwise expand our business, whether through new or expanded collaborations or other products and services, our net losses may increase and we may never achieve profitability. In addition, some of our agreements, including the agreements with GSK, Merck, Novartis, Nestl&#233;, Aldevro</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">n, Roche, Crosswalk and Alphazyme </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">provide for milestone payments, usage payments, and/or future royalty or other payments, which we will only receive if we and/or our collaborators develop and commercialize products or achieve technical milestones. We also intend to continue to fund the development of additional proprietary performance enzyme products and advance new technologies like our ECO Synthesis manufacturing platform. There can be no assurance that any of these products or services will become commercially viable or that we will ever achieve profitability on a quarterly or annual basis. If we fail to achieve profitability, or if the time required to achieve profitability is longer than we anticipate, we may not be able to continue our business. Even if we do achieve profitability, we may not be able to sustain or increase profitability on a quarterly or annual basis. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Therapeutics development programs are highly regulated and expensive, and our enzyme products are complex and subject to quality control requirements. The ability of our customers, future customers or collaborators, including any company developing RNAi and other RNA-based therapeutics, to advance product candidates utilizing our products to clinical trials and to ultimately receive regulatory approvals is highly uncertain.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we are no longer developing our own portfolio of biotherapeutics product candidates, we continue to develop enzyme products, including our ECO Synthesis manufacturing platform, that may be used by our customers, future customers or collaborators in connection with their biotherapeutic product candidates. The successful development of biotherapeutic candidates involves many risks and uncertainties, requires long timelines and may lead to uncertain results. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our customers are subject to extensive regulations by the FDA and similar regulatory authorities in other countries for conducting clinical trials and commercializing products for therapeutic, vaccine or diagnostic use. These regulations result in our customers imposing quality requirements on us for the manufacture of our enzyme products through supplier qualification processes and customer contracts and specifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In order to market a biologic or drug product in the United States, our customers, future customers or collaborators must undergo the following process required by the </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">FDA: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">completion of extensive preclinical laboratory tests and preclinical animal studies, all performed in accordance with the FDA's Good Laboratory Practice requirements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">submission to the FDA of an IND, which must become effective before human clinical studies may begin in the United States;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">approval by an independent institutional review board (&#8220;IRB&#8221;) representing each clinical site before the clinical study may be initiated at the site;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">performance of adequate and well-controlled human clinical studies in accordance with GCP requirements to establish the safety, purity and potency (or efficacy) of the product candidate for each proposed indication;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">preparation of and submission to the FDA of an NDA or BLA after completion of all clinical studies;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential review of the product candidate by an FDA advisory committee;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">satisfactory completion of an FDA pre-approval inspection of the manufacturing facilities where the product candidate is produced to assess compliance with current Good Manufacturing Practice (&#8220;cGMP&#8221;) requirements; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">FDA review and approval of a BLA or NDA prior to any commercial marketing or sale of the product in the United States; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">any post-approval requirements, if applicable.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The regulatory approval processes of the FDA and comparable foreign authorities are lengthy, time consuming and the results are inherently unpredictable. If our customers, future customers or collaborators are ultimately unable to obtain regulatory approval for their biotherapeutic product candidates utilizing our enzyme products, our business may be harmed. In addition, if our customers, future customers or collaborators fail to comply with applicable FDA or other regulatory requirements at any time during the drug development process, clinical testing, the approval process or after approval, they may become subject to administrative or judicial penalties, including the FDA&#8217;s refusal to approve a pending application, withdrawal of an approval, warning letters, product recalls and additional enforcement actions, any of which may have an adverse effect on our financial condition.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We believe that our products are exempt from FDCA requirements, but FDA or other regulators may disagree and find that our products are subject to such requirements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe our enzyme products are exempt from compliance with the FDCA and the implementing GMP regulations of the FDA, as our products are further processed and incorporated into final drug or biologic products by our customers and we do not make claims related to their safety or effectiveness. Our products are currently manufactured following the voluntary quality standards of ISO 9001:2015, and we anticipate signing and announcing a partnership with a CDMO to provide enzymatically synthesized, GMP-grade siRNA to customers in the near term. Our planned collaboration with a CDMO may not come to fruition and, even if it does, may not scale up as anticipated. Even if the scale up plans succeed, we or the CDMO may incur delays in production or have insufficient product for consumers. And, in the event we, or our suppliers, produce products that fail to comply with voluntary quality standards or GMP standards imposed by customers, we may incur delays in fulfilling orders, write-downs or other losses, damages resulting from product liability claims and harm to our reputation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the future, our products could become subject to more onerous regulation, or the FDA could disagree with our assessment that our enzyme products are exempt from current GMP regulations. In addition, the FDA could conclude that the products we provide to our customers are actually subject to the pharmaceutical, drug or biologic quality-related regulations for manufacturing, processing, packing or holding of drugs, biologics, or finished pharmaceuticals, and could take enforcement action against us, including requiring us to stop distribution of our products until we are in compliance with applicable regulations, which would reduce our revenue, increase our costs and adversely affect our business, prospects, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on a limited number of customers. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we continue to expand our customer base, our current revenues are derived from a limited number of key customers. For the years ended December&#160;31, 2024 and 2023, customers that each individually contributed 10% or more of our total revenue accounted for 51% and 35% of our total revenues, respectively. We expect a limited number of customers to continue to account for a significant portion of our revenues for the foreseeable future. This customer concentration increases the risk of quarterly fluctuations in our revenues and operating results. The loss or reduction of business from one or a combination of our significant customers could, materially adversely affect our revenues, financial condition and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Some of our product supply agreements with customers, if in place, have finite duration, may not be extended or renewed and generally do not require the customer to purchase any particular quantity or quantities of our products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our product supply agreements with customers generally have a finite duration, may not be extended or renewed and generally do not require the customer to purchase any particular quantity or quantities of our products. Additionally, some customers order our products on a quote and purchase order basis under standard terms and conditions, with no guarantee of future orders. While our products are not considered commodities and may not be easily substituted for by our customers, particularly when our products are used in the manufacture of active pharmaceutical ingredients, our customers may nevertheless terminate or fail to renew their product supply agreements with us or significantly curtail their purchases thereunder under certain circumstances. We are working to develop new relationships with existing or new customers, but despite these efforts we may not, at the time that any of our existing product supply agreements expire or are terminated, or purchases thereunder curtailed, have other contracts in place generating similar or material revenue. Any such expiration, termination or reduction could materially adversely affect our revenues, financial condition and results of operations. For the year ended December&#160;31, 2024, we derived a majority of our product revenue from these product supply agreements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The demand for our products depends in part on our customers&#8217; research and development and the clinical and market success of their products. Our business, financial condition, and results of operations may be harmed if our customers spend less on, or are less successful in, these activities. In addition, customer spending may be affected by, among other things, general market and economic conditions beyond our control.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our customers are engaged in research, development, production, and marketing of pharmaceutical products and intermediates. The amount our customers spend on research, development, production, and marketing, as well as the outcomes of such research, development, and marketing activities, have a large impact on our sales and profitability, particularly the amount our customers choose to spend on our offerings. Available resources, the need to develop new products, and consolidation in the industries in which our customers operate may have an impact on such spending. Our customers and potential customers finance their research and development spending from private and public sources. A reduction in available financing for and spending by our customers, for these reasons or because of continued unstable or unpredictable economic and marketplace conditions, could have a material adverse effect on our business, financial condition, and results of operations. If our customers are not successful in attaining or retaining product sales due to market conditions, reimbursement issues, or other factors, our results of operations may be materially adversely affected.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we are unable to develop and commercialize new products for the pharmaceutical, biotherapeutics, diagnostics and life science tools markets, our business and prospects will be harmed.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We plan to launch new products for the pharmaceutical, biotherapeutics, diagnostics and other life science tools markets such as our ECO Synthesis manufacturing platform. These efforts are subject to numerous risks, including the following: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">customers in these markets may be reluctant to adopt new manufacturing processes that use our enzymes; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may be unable to successfully develop the enzymes or manufacturing processes for our products in a timely and cost-effective manner, if at all; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face difficulties in transferring the developed technologies to our customers and the contract manufacturers that we may use for commercial scale production of intermediates and enzymes in these markets; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the biotherapeutics products that use our tools may not receive regulatory approval or be commercially viable;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the contract manufacturers that we may use may be unable to scale their manufacturing operations to meet the demand for these products and we may be unable to secure additional manufacturing capacity; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">customers may not be willing to purchase these products for these markets from us on favorable terms, if at all; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face product liability litigation, unexpected safety or efficacy concerns and product recalls or withdrawals; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers&#8217; products may experience adverse events or face competition from new products, which would reduce demand for our products; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face pressure from existing or new competitive products; and </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we may face pricing pressures from existing or new competitors, some of which may benefit from government subsidies or other incentives.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">A reduction or delay in government funding of research and development for our customers may adversely affect our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A portion of our revenue is derived from customers whose funding is partially dependent on both the level and timing of funding from government sources, which funding can be difficult to forecast. Government funding of research and development is subject to the political process, which is inherently fluid and unpredictable. Our revenue may be adversely affected if our customers delay or limit purchases as a result of uncertainties surrounding the approval of government budget proposals, including reduced allocations to government agencies that fund research and development activities. If government proposals to reduce or eliminate budgetary deficits result in reduced allocations to government agencies that fund research and development activities, or results of operations may be materially adversely affected.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">With respect to customers purchasing our products for the manufacture of APIs for which they have exclusivity due to patent protection, the termination or expiration of such patent protection and any resulting generic competition may materially and adversely affect our revenues, financial condition or results of operations.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With respect to customers purchasing our products for the manufacture of API, or lead to the manufacture of API, for which exclusivity due to patent protection has or is about to expire, we can expect that the quantity of our products sold to such customers for such products may decline as generic competition for the API increases. While we anticipate that we may, in some cases, also be able to sell products to these generic competitors for the manufacture of these APIs, or lead to the manufacture of these APIs, the overall effect on our revenues, financial condition and results of operations could be materially adverse.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The services and offerings we provide are highly complex, and if we encounter problems providing the services or support required, our business could suffer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The offerings we provide are highly complex, due in part to strict regulatory requirements and the inherent nature of services we provide, including exacting manufacturing processes. A failure of our quality control systems in our facilities could cause problems in connection with facility operations for a variety of reasons, including equipment malfunction, viral contamination, failure to follow specific manufacturing instructions, protocols and standard operating procedures, problems with raw materials or environmental factors. In addition, any failure to meet required quality standards may result in our failure to timely deliver products to our customers which, in turn, could damage our reputation for quality and service. Any such incident could, among other things, lead to increased costs, lost revenue, reimbursement to customers for lost drug substances, damage to and possibly termination of customer relationships, time and expense spent investigating and remediating the cause and, depending on the cause, similar losses with respect to other manufacturing runs. In addition, such issues could subject us to litigation, the cost of which could be significant. These risks will be intensified in connection with the build-out of our Innovation Lab, through which we expect to continue scaling specific manufacturing processes of our customers&#8217; specific therapeutic assets and, eventually, expect to manufacture GLP-grade RNAi therapeutic material in sufficient quantities to support customers&#8217; preclinical development.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Any productivity issues or higher-than-expected costs at our facilities could result in material and adverse impacts on our financial condition and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As we continue to scale up our manufacturing processes in connection with the completed build-out of our Innovation Lab and our anticipated partnership with a CDMO to provide enzymatically synthesized, GMP-grade siRNA to customers, we may face manufacturing capacity constraints or higher-than-expected costs at our facilities, including our Innovation Lab. There can be no assurance that revenue lost due to productivity issues or capacity constraints will be recovered on expected timeframes or at all. If we are unsuccessful in remedying any productivity issues at our facilities or those of our CDMO, if we are unable to recover revenue from unproduced batches when expected or at all, or if costs at our facilities are higher than expected, we may experience material and adverse impacts on our financial condition and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on a limited number of third-party contract manufacturers for large scale production of substantially all of our enzymes. We are working to qualify new contract manufacturers to produce certain of our enzymes, however those efforts may not be successful and therefore we may experience limitations on our ability to supply our enzymes to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Manufacturing of our enzymes is conducted primarily in four locations: our in-house facility in Redwood City, California, and at three third-party CMOs: Lactosan in Kapfenberg, Austria, ACSD in Anagni, Italy, and Sekisui in Maidstone, United Kingdom. Generally, we perform smaller scale manufacturing in-house and outsource the larger scale manufacturing to these contract manufacturers. We have limited internal capacity to manufacture enzymes. As a result, we are dependent upon the performance and capacity of third-party manufacturers for the larger scale manufacturing of the enzymes used in our pharmaceutical and life sciences businesses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, we face risks of difficulties with, and interruptions in, performance by third party manufacturers, the occurrence of which could adversely impact the availability, launch and/or sales of our enzymes in the future. Enzyme manufacturing capacity limitations at our third-party manufacturers and manufacturing delays could negatively affect our business, reputation, results of operations and financial condition. The failure of any contract manufacturer to supply us our required volumes of enzyme on a timely basis, or to manufacture our enzymes in compliance with our specifications or applicable quality requirements or in volumes sufficient to meet demand, would adversely affect our ability to sell pharmaceutical and complex chemicals products, could harm our relationships with our customers or collaborators and could negatively affect our revenues and operating results. We may be forced to secure alternative sources of supply, which may be unavailable on commercially acceptable terms, and could cause delays in our ability to deliver products to our customers, increase our costs and decrease our profit margins.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">20</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We currently have supply agreements in place with Lactosan, ACSD and Sekisui. In the absence of a supply agreement, a contract manufacturer will be under no obligation to manufacture our enzymes and could elect to discontinue their manufacture at any time. If we require additional manufacturing capacity and are unable to obtain it in sufficient quantity, we may not be able to increase our product sales, or we may be required to make substantial capital investments to build that capacity or to contract with other manufacturers on terms that may be less favorable than the terms we currently have with our suppliers. If we choose to build our own additional manufacturing facility, it could take several years or longer before our facility is able to produce commercial volumes of our enzymes. Any resources we expend on acquiring or building internal manufacturing capabilities could be at the expense of other potentially more profitable opportunities. In addition, if we contract with other manufacturers, we may experience delays of several months in qualifying them, which could harm our relationships with our customers or collaborators and could negatively affect our revenues or operating results.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on our collaborators, and our failure to successfully manage these relationships could prevent us from developing and commercializing many of our products and achieving or sustaining profitability.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ability to maintain and manage collaborations in our markets is fundamental to the success of our business. We currently have license agreements, research and development agreements, supply agreements and/or distribution agreements with various collaborators. We may have limited or no control over the amount or timing of resources that any collaborator is able or willing to devote to our partnered products or collaborative efforts. Any of our collaborators may fail to perform its obligations. These collaborators may breach or terminate their agreements with us or otherwise fail to conduct their collaborative activities successfully and in a timely manner. Further, our collaborators may not develop products arising out of our collaborative arrangements or devote sufficient resources to the development, manufacture, marketing or sale of these products. If any of these events occur, especially if they occur in our collaborations with GSK, Merck or Novartis, or if we fail to maintain our agreements with our collaborators, we may not be able to commercialize our existing and potential products or grow our business or generate sufficient revenues to support our operations, we may not receive contemplated milestone payments and royalties under the collaboration, and we may be involved in litigation. Our collaboration opportunities could be harmed and our financial condition and results of operations could be negatively affected if:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we or our collaborators do not achieve our research and development objectives under our collaboration agreements in a timely manner, or at all;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we develop products and processes or enter into additional collaborations that conflict with the business objectives of our other collaborators;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators and/or our contract manufacturers do not receive the required regulatory and other approvals necessary for the commercialization of the applicable product;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">we are unable to manage multiple simultaneous collaborations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators or licensees are unable or unwilling to implement or use the technology or products that we provide or license to them;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators become competitors of ours or enter into agreements with our competitors;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators become unable or less willing to expend their resources on research and development or commercialization efforts due to general market conditions, their financial condition or other circumstances beyond our control; or </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our collaborators experience business difficulties, which could eliminate or impair their ability to effectively perform under our agreements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Even after collaboration relationships expire or terminate, some elements of the collaboration may survive. For instance, certain rights, licenses and obligations of each party with respect to intellectual property and program materials may survive the expiration or termination of the collaboration.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Finally, our business could be negatively affected if any of our collaborators or suppliers undergoes a change of control or were to otherwise assign the rights or obligations under any of our agreements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have invested significant resources to enable enzymatic nucleic acid synthesis, which is based on novel ideas and technologies that are largely unproven.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Our ECO Synthesis manufacturing platform is designed to enable the commercial-scale manufacture of RNAi and other RNA-based therapeutics through an enzymatic route. While we believe enzymatic nucleic acid synthesis will offer certain improvements over phosphoramidite chemistry, including with respect to required infrastructure investments, batch size limitations and waste disposal challenges, the enzymatic route is novel and has not yet been commercialized. As such, we may be faced with unforeseen results, delays and setbacks, in addition to the other foreseeable risks and uncertainties associated with the ongoing development of the ECO Synthesis manufacturing platform and other products. </span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Other challenges with a new technology such as our ECO Synthesis manufacturing platform include having an unknown and unproven development and regulatory path, uncertainly around the value that we can realize from the technology, uncertainty around the timeline for adoption of the technology by customers, and uncertainly around our ability to secure supply of necessary materials or to manufacture at GMP at scale and partner with customers on manufacturing and utilizing the technology. We may also be unable to achieve the expected benefits of the ECO Synthesis manufacturing platform in a timely manner, or at all.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">There can be no assurance that these events we may experience in the future related to enzymatic synthesis will not cause significant delays or unanticipated costs, or that such development problems can be solved. Any delay or difficulties in developing and commercializing our ECO Synthesis manufacturing platform or any of our other current or future products could adversely affect our business and operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Competitors and potential competitors who have greater resources and experience than we do may develop products and technologies that make ours obsolete or may use their greater resources to gain market share at our expense.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The biocatalysis and performance enzyme industries and each of our target markets are characterized by rapid technological change. Our future success will depend on our ability to maintain a competitive position with respect to technological advances. In addition, as we enter new markets, we will face new competition and will need to adapt to competitive factors that may be different from those we face today. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are aware that other companies, including Ginkgo Bioworks, BRAIN, and Enzymicals AG, have alternative methods for obtaining and generating genetic diversity or use mutagenesis techniques to produce genetic diversity. Some companies, including Biomatter Designs, Arzeda, and Enzymaster, leverage predictive computational algorithms to guide enzyme engineering efforts. In addition, academic institutions such as the California Institute of Technology, University of Washington, University of Manchester, and the Austrian Centre of Industrial Biotechnology are also working in this field. Technological development by others may result in our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, as well as products developed by our customers using our biocatalysts, becoming obsolete. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our primary competitors in the performance enzymes for the pharmaceutical products</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">markets include (i) </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">companies marketing either conventional, non-enzymatic processes or biocatalytic enzymes; (ii) manufacturers of pharmaceutical intermediates and APIs; and (iii) existing in-house technologies (both biocatalysts and conventional catalysts) within our client and potential client companies. The principal methods of competition and competitive differentiation in this market are price, product quality and performance, including manufacturing yield, safety and environmental benefits, and speed of delivery of product. Pharmaceutical manufacturers that use biocatalytic processes can face increased competition from manufacturers that use more conventional processes and/or manufacturers that are based in regions (such as India and China) with lower regulatory, safety and environmental costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for the manufacture and supply of APIs and intermediates is large with many established companies. These companies include many of our large innovator and generic pharmaceutical customers, such as Merck, GSK, Novartis, Pfizer, Bristol-Myers, Kyorin, Urovant, and Teva which have significant internal research and development efforts directed at developing processes to manufacture APIs and intermediates. The processes used by these companies include classical conventional organic chemistry reactions, chemo catalytic reactions, biocatalytic reactions or combinations thereof. Our biocatalytic based manufacturing processes must compete with these internally developed routes. Additionally, we also face competition from companies developing and marketing conventional catalysts such as Solvias Inc., BASF and Takasago International Corporation.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">22</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for supplying enzymes for use in pharma biocatalysis is fragmented. There is competition from large industrial enzyme companies, such as Novozymes and DuPont, as well as subsidiaries of larger contract research/contract manufacturing organizations, such as DSM, Cambrex Corporation, Lonza, WuXi STA and Almac Group Ltd. Some fermentation pathway design companies, like Ginkgo Bioworks (who recently acquired Zymergen), whose traditional focus has been to design microorganisms that express small molecule chemicals, could extend into designing organisms that express enzymes. There is also competition in the enzyme customization and optimization area from several smaller companies, such as BRAIN AG, Arzeda Corp., c-LEcta GmbH and Evocatal GmbH.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We face competitive challenges related to our ECO Synthesis manufacturing platform. The current industry standard for manufacturing RNAi therapeutics is a well-established, chemical-based method, SPOS, utilizing phosphoramidite chemistry. Primary competitors in this space include CDMOs, such as Agilent Technologies, which has made significant capital investment to expand their RNA manufacturing capabilities using phosphoramidite chemistry. In addition, CDMOs and large pharmaceutical companies are seeking to make incremental improvements to phosphoramidite chemistry, including the development of ligation-based approaches, liquid-phase synthesis, and solvent recycling. There are also multiple early-stage competitors who are pursuing fully enzymatic approaches to the manufacture of RNA, including EnPlusOne Biosciences, a private startup company, and a UK-based consortium led by CPI and consisting of multiple academic and research organizations, including The University of Manchester and large pharmaceutical companies, including AstraZeneca plc and Novartis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our ability to compete successfully in any of these markets will depend on our ability to develop proprietary products that reach the market in a timely manner and are technologically superior to and/or are less expensive than other products on the market. Many of our competitors have substantially greater production, financial, research and development, personnel and marketing resources than we do. They also started developing products earlier than we did, which may allow them to establish blocking intellectual property positions or bring products to market before we can. In addition, certain of our competitors may also benefit from local government subsidies and other incentives that are not available to us. As a result, our competitors may be able to develop competing and/or superior technologies and processes and compete more aggressively and sustain that competition over a longer period of time than we could. Our technologies and products may be rendered obsolete or uneconomical by technological advances or entirely different approaches developed by one or more of our competitors. We cannot be certain that any products we develop in the future will compare favorably to products offered by our competitors or that our existing or future products will compare favorably to any new products that are developed by our competitors. As more companies develop new intellectual property in our markets, the possibility of a competitor acquiring patent or other rights that may limit our products or potential products increases, and could additionally lead to litigation. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our limited resources relative to many of our competitors may cause us to fail to anticipate or respond adequately to new developments and other competitive pressures. This failure could reduce our competitiveness and market share, adversely affect our results of operations and financial position, and prevent us from obtaining or maintaining profitability. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We have investments in non-marketable securities, which may subject us to significant impairment charges.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have investments in illiquid or non-marketable equity securities acquired in private transactions. As of December&#160;31, 2024, 1.9% of our consolidated assets consisted of investment securities, which are illiquid investments. Investments in non-marketable, securities are inherently risky and difficult to value. We account for our non-marketable equity securities under the measurement alternative. Under the measurement alternative, the carrying value of our non-marketable equity investments is adjusted to fair value for observable transactions for identical or similar investments of the same issuer or impairment. We evaluate our investment in non-marketable securities when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in estimated fair value of the equity security compared to its carrying value. The impairment analysis requires significant judgment to identify events or circumstances that would likely have a material adverse effect on the fair value of the investment. Future impairment charges from the write down in value of these securities could have a material adverse effect on our financial condition or results of operations.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Ethical, legal and social concerns about genetically engineered products and processes could limit or prevent the use of our technology, products and processes and limit our revenues.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Some of our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services, such as our ECO Synthesis manufacturing platform, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">are genetically engineered or involve the use of genetically engineered products or genetic engineering technologies. If we and/or our collaborators are not able to overcome the ethical, legal, and social concerns relating to genetic engineering, our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">may not be accepted. Any of the risks discussed below could result in increased expenses, delays, or other impediments to our programs or the public acceptance and commercialization of products and processes dependent on our technologies or inventions. Our ability to develop and commercialize one or more of our technologies, products, or processes could be limited by the following factors: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">public attitudes about the safety and environmental hazards of, and ethical concerns over, genetic research and genetically engineered products and processes, which could influence public acceptance of our technologies, products and processes; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">public attitudes regarding, and potential changes to laws governing ownership of, genetic material, which could harm our intellectual property rights with respect to our genetic material and/or discourage collaborators from supporting, developing, or commercializing our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology, products and services</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">; and </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">governmental reaction to negative publicity concerning genetically modified organisms, which could result in greater government regulation of genetic research and derivative products. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The subject of genetically modified organisms has received negative publicity, which has aroused public debate. This adverse publicity could lead to greater regulation and trade restrictions on imports of genetically altered products. The biocatalysts that we develop have significantly enhanced characteristics compared to those found in naturally occurring enzymes or microbes. While we produce our biocatalysts only for use in a controlled industrial environment, the release of such biocatalysts into uncontrolled environments could have unintended consequences. Any adverse effect resulting from such a release could have a material adverse effect on our business and financial condition, damage our reputation, and/or expose us to liability for any resulting harm. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">As a result of our strategic shift and our refined focus on certain programs and business lines, we may fail to capitalize on other opportunities that may be more profitable or for which there is a greater likelihood of success.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Because we have limited financial and managerial resources, we have recently focused our efforts on developing certain programs and business lines. As a result, we may forego or delay pursuit of business opportunities that later prove to have greater commercial potential. Further our resource allocation decisions may cause us to fail to capitalize on viable commercial products or profitable market opportunities. In addition, our spending on current and future research and development programs, such as ECO Synthesis manufacturing platform that is in development, may not yield any commercially viable products. If we do not accurately evaluate the commercial potential or target market for a particular program or business line, our business and results of operations could be harmed.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Given our change in strategic direction, we may receive limited revenue or no future value from certain of our existing license agreements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we have historically invested significant time and financial resources in the development of biotherapeutics assets, we have terminated investment in our biotherapeutics business and in other programs. As a result, we are renegotiating some of these, along with other license agreements for product candidates in our biotherapeutics, food and feed, and non-core life science assets. For example, we entered into the Acquisition Agreement with Nestl&#233; under which they acquired rights to our co-developed lipase enzyme CDX-7108 and we received an upfront payment and the right to downstream milestones and royalties, terminating our prior SCA and development agreement with Nestl&#233;. While we are working to amend or terminate some of our agreements and enter into new agreements in such a way that we may be able to receive future revenue or other benefits, we may be unsuccessful in doing so. As a result, it remains uncertain as to whether we will receive any value or benefit from these license agreements going forward. Further, renegotiating these agreements may be costly and could divert management attention, which could have an adverse impact on our business and results of operations.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">24</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The timing of our customer orders and related product revenue recognition is unpredictable and may cause our operating results to vary significantly from quarter to quarter, which could adversely affect our stock price</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A majority of our product revenue is derived from purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer or over time as the product is manufactured. The occurrence and timing of any transfer of control of product sold to our customers can be difficult to predict, and the recognition of revenue can vary widely depending on timing of product deliveries and satisfaction of other obligations. Product orders during any given period may be concentrated in relatively few contracts, intensifying the amplitude and irregularity of our revenue streams from quarter to quarter. In addition, the timing of contract or order commencements and completions may exacerbate the uneven pattern.  Moreover, our revenue or operating expenses in one period may be disproportionately higher or lower relative to the others due to, among other factors, revenue fluctuations or increases in expenses as we invest in key technology development projects and improvements, develop and commercialize new and existing products and expand our business development and collaboration with new customers. If such fluctuations occur or if our operating results deviate from our expectations or the expectations of investors or securities analysts, our stock price could be adversely affected.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We use hazardous materials in our business and we must comply with environmental laws and regulations. Any claims relating to improper handling, storage or disposal of these materials or noncompliance of applicable laws and regulations could be time consuming and costly and could adversely affect our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our research and development, manufacturing, and commercial processes involve the use of hazardous materials, including chemical, radioactive and biological materials, such as acetonitrile, which is used in some of our purification processes. Our operations also produce hazardous waste. We cannot eliminate entirely the risk of accidental contamination or discharge and any resultant injury from these materials. Federal, state, local and foreign laws and regulations govern the use, manufacture, storage, handling and disposal of, and human exposure to, these materials. We may face liability for any injury or contamination that results from our use or the use by third parties of these materials, and our liability may exceed our total assets. Although we believe that our activities comply in all material respects with environmental laws, there can be no assurance that violations of environmental, health and safety laws will not occur in the future as a result of human error, accident, equipment failure or other causes. Compliance with applicable environmental laws and regulations may be expensive, and the failure to comply with past, present or future laws could result in the imposition of fines, third party property damage, product liability and personal injury claims, investigation and remediation costs, the suspension of production or a cessation of operations, and our liability may exceed our total assets. Liability under environmental laws can be joint and several and without regard to comparative fault. Environmental laws could become more stringent over time imposing greater compliance costs and increasing risks and penalties associated with violations, which could impair our research, development or production efforts and harm our business. In addition, we may be required to indemnify some of our customers or suppliers for losses related to our failure to comply with environmental laws, which could expose us to significant liabilities. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our ability to use our net operating loss carryforwards to offset future taxable income may be subject to certain limitations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In general, under Section 382 of the Internal Revenue Code of 1986, as amended (the &#8220;Code&#8221;), a corporation that undergoes an &#8220;ownership change&#8221; is subject to limitations on its ability to utilize its pre-change net operating loss carryforwards (&#8220;NOLs&#8221;), to offset future taxable income. If the Internal Revenue Service challenges our analysis that our existing NOLs are not subject to limitations arising from previous ownership changes, our ability to utilize NOLs could be limited by Section 382 of the Code. Future changes in our stock ownership, some of which are outside of our control, could result in an ownership change under Section 382 of the Code. Furthermore, our ability to utilize NOLs of companies that we may acquire in the future may be subject to limitations. For these reasons, we may not be able to utilize a material portion of the NOLs reflected in our financial statements, even if we attain profitability.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">As a public reporting company, we are subject to rules and regulations established from time to time by the SEC and Nasdaq regarding our internal controls over financial reporting. We may not complete needed improvements to our internal controls over financial reporting in a timely manner, or these internal controls may not be determined to be effective, which may adversely affect investor confidence in our company and, as a result, the value of our common stock and your investment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are subject to the rules and regulations established from time to time by the SEC and Nasdaq. These rules and regulations require, among other things, that we establish and periodically evaluate procedures with respect to our internal controls over financial reporting. As part of these evaluations, material weaknesses in our internal controls over financial reporting may be identified. A material weakness is a deficiency, or a combination of deficiencies, in internal controls over financial reporting such that there is a reasonable possibility that a material misstatement of a company&#8217;s annual or interim consolidated financial statements will not be prevented or detected on a timely basis. While we were able to remediate previously identified material weaknesses in our internal controls over financial reporting, there can be no guarantee we will not identify similar or other material weaknesses in the future and if such material weaknesses are identified, there can be no guarantee we would be able to remediate such material weaknesses. Any material weaknesses in our internal controls may adversely affect our ability to record, process, summarize and accurately report timely financial information and, as a result, our consolidated financial statements may contain material misstatements or omissions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reporting obligations as a public company place a considerable strain on our financial and management systems, processes and controls, as well as on our personnel. In addition, as a public company we are required to document and test our internal controls over financial reporting pursuant to Section 404 of the Sarbanes-Oxley Act so that our management can certify as to the effectiveness of our internal controls over financial reporting. Likewise, while we currently qualify as a &#8220;smaller reporting company&#8221; under the SEC rules, for any fiscal years in which we are not considered a smaller reporting company, our independent registered public accounting firm is required to provide an attestation report on the effectiveness of our internal controls over financial reporting in our Annual Reports on Form 10-K. If our management is unable to certify the effectiveness of our internal controls or if our independent registered public accounting firm cannot deliver a report attesting to the effectiveness of our internal controls over financial reporting, or if we identify or fail to remediate material weaknesses in our internal controls, we could be subject to regulatory scrutiny and a loss of public confidence, which could seriously harm our reputation and the market price of our common stock. In addition, if we do not maintain adequate financial and management personnel, processes and controls, we may not be able to manage our business effectively or accurately report our financial performance on a timely basis, which could cause a decline in our common stock price and may seriously harm our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may need additional capital in the future in order to expand our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our future capital requirements may be substantial, particularly as we continue to develop our business. Although we believe that, based on our current level of operations, our existing cash, cash equivalents and equity securities will provide adequate funds for ongoing operations, planned capital expenditures and working capital requirements for at least the next 12 months, we may need additional capital if our current plans and assumptions change. Our need for additional capital will depend on many factors, including the financial success of our performance enzyme business, our spending to develop and commercialize new and existing enzyme products and the amount of collaboration funding we may receive to help cover the cost of such expenditures, the effect of any acquisitions of other businesses, technologies or facilities that we may make or develop in the future, our spending on new market opportunities, including the ongoing commercialization of our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis manufacturing platform</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, scaling the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis manufacturing platform to GMP capability, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">and the filing, prosecution, enforcement and defense of patent claims. If our capital resources are insufficient to meet our capital requirements, and we are unable to enter into or maintain collaborations with partners that are able or willing to fund our development efforts or commercialize any enzyme products that we develop or enable, we will have to raise additional funds to continue the development of our technology and products and complete the commercialization of products, if any, resulting from our technologies.<br/> </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In addition, we may choose to raise additional capital due to market conditions or strategic considerations, such as funding the ongoing commercialization of our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">ECO Synthesis manufacturing platform and a GMP manufacturing facility</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">, even if we believe we have sufficient funds for our current or future operating plans. We may seek to obtain such additional capital through equity offerings, including pursuant to our Controlled Equity Offering&#8480; Sales Agreement (the &#8220;Cantor Sales Agreement&#8221;) with Cantor Fitzgerald &amp; Co., as sales agent (&#8220;Cantor&#8221;), debt financings, credit facilities and/or strategic collaborations. If future financings involve the issuance of equity securities, our existing stockholders would suffer dilution. In addition, under our Loan Agreement with Innovatus, we are subject to restrictive covenants that limit our ability to conduct our business and could be subject to additional covenants to the extent we seek other debt financing in the future. Strategic collaborations may also place restrictions on our business. We may not be able to raise sufficient additional funds on terms that are favorable to us, if at all. If we fail to raise sufficient funds and fail to generate sufficient revenues to achieve planned gross margins and to control operating costs, our ability to fund our operations, take advantage of strategic opportunities, develop products or technologies, or otherwise respond to competitive pressures could be significantly limited. If this happens, we may be forced to delay or terminate research or development programs or the commercialization of products resulting from our technologies, curtail or cease operations or obtain funds through collaborative and licensing arrangements that may require us to relinquish commercial rights, or grant licenses on terms that are not favorable to us. If adequate funds are not available, we will not be able to successfully execute our business plan or continue our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Covenants and other provisions in our Loan Agreement with Innovatus restrict our business and operations in many ways, and if we do not effectively manage our covenants, our financial conditions and results of operations could be adversely affected. In addition, our operations may not provide sufficient cash to meet the repayment obligations of our debt incurred under the Loan Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the Loan Agreement, Innovatus has been granted a security interest in substantially all of our assets. If an event of default occurs under the Loan Agreement, Innovatus may foreclose on its security interest and liquidate some or all of these assets, which would harm our business, financial condition and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the event of a default in connection with our bankruptcy, insolvency, liquidation, or reorganization, Innovatus would have a prior right to substantially all of our assets to the exclusion of our general unsecured creditors. Only after satisfying the claims of Innovatus and any unsecured creditors would any amount be available for our equity holders.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The pledge of these assets and other restrictions imposed in the Loan Agreement may limit our flexibility in raising capital for other purposes. Because substantially all of our assets are pledged to secure the Loan Agreement obligations, our ability to incur additional indebtedness or to sell or dispose of assets to raise capital may be impaired, which could have an adverse effect on our financial flexibility.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In addition, if we are unable to comply with certain financial and operating restrictions in the Loan Agreement, we may be limited in our business activities and access to credit or may default under the Loan Agreement. Provisions in the Loan Agreement impose restrictions or require prior approval on our ability, and the ability of certain of our subsidiaries to, among other things:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">sell, lease or transfer certain parts of our business or property, including equity interests of our subsidiaries;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">engage in new lines of business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">acquire new companies and merge or consolidate;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">incur additional debt or guarantee the indebtedness of others or our subsidiaries;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">create liens or encumbrances;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">pay cash dividends and make distributions or redeem or repurchase our capital stock;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">make certain investments; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">enter into transactions with affiliates; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">terminate or, in certain cases, amend our material agreements.</span></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Loan Agreement also contains other customary covenants. We may not be able to comply with these covenants in the future. Our failure to comply with these covenants may result in the declaration of an event of default, which, if not cured or waived, may result in the acceleration of the maturity of indebtedness outstanding under the Loan Agreement and would require us to pay all amounts outstanding. If the maturity of our indebtedness is accelerated, we may not have sufficient funds then available for repayment or we may not have the ability to borrow or obtain sufficient funds to replace the accelerated indebtedness on terms acceptable to us or at all. Our failure to repay our obligations under the Loan Agreement could result in Innovatus foreclosing on all or a portion of our assets, which could force us to curtail or cease our operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we engage in any acquisitions, we will incur a variety of costs and may potentially face numerous risks that could adversely affect our business and operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have made acquisitions in the past, and if appropriate opportunities become available, we expect to acquire additional businesses, assets, technologies, or products to enhance our business in the future. For example, in October 2010, we acquired substantially all of the patents and other intellectual property rights associated with Maxygen&#8217;s directed evolution technology. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with any future acquisitions, we could: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue additional equity securities, which would dilute our current stockholders; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">incur substantial debt to fund the acquisitions; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">use our cash to fund the acquisitions; or </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">assume significant liabilities including litigation risk. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisitions involve numerous risks, including problems integrating the purchased operations, technologies or products, unanticipated costs and other liabilities, diversion of management&#8217;s attention from our core businesses, adverse effects on existing business relationships with current and/or prospective collaborators, customers and/or suppliers, risks associated with entering markets in which we have no or limited prior experience and potential loss of key employees. We do not have extensive experience in managing the integration process and we may not be able to successfully integrate any businesses, assets, products, technologies or personnel that we might acquire in the future without a significant expenditure of operating, financial and management resources, if at all. The integration process could divert management&#8217;s time from focusing on operating our business, result in a decline in employee morale and cause retention issues to arise from changes in compensation, reporting relationships, future prospects or the direction of the business. Acquisitions may also require us to record goodwill and non-amortizable intangible assets that will be subject to impairment testing on a regular basis and potential periodic impairment charges, incur amortization expenses related to certain intangible assets, and incur large and immediate write offs and restructuring and other related expenses, all of which could harm our operating results and financial condition. In addition, we may acquire companies that have insufficient internal financial controls, which could impair our ability to integrate the acquired company and adversely impact our financial reporting. If we fail in our integration efforts with respect to any of our acquisitions and are unable to efficiently operate as a combined organization, our business and financial condition may be adversely affected.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">28</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Government Regulation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Even if our customers, future customers or collaborators obtain regulatory approval for any products utilizing our enzymes, such products will remain subject to ongoing regulatory requirements, which may result in significant additional expense.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any products that receives FDA approval will remain subject to ongoing regulatory requirements for manufacturing, labeling, packaging, distribution, storage, advertising, promotion, sampling, record-keeping and submission of safety and other post-market information, among other things. Any regulatory approvals received for such products may also be subject to limitations on the approved indicated uses for which they may be marketed or to the conditions of approval, or contain requirements for potentially costly post-marketing testing and surveillance studies. For example, the holder of an approved NDA or BLA in the United States is obligated to monitor and report adverse events and any failure of a product to meet the specifications in the NDA or BLA. In the United States, the holder of an approved NDA or BLA must also submit new or supplemental applications and obtain FDA approval for certain changes to the approved product, product labeling or manufacturing process. Similar provisions apply in the European Union (the &#8220;EU&#8221;). Advertising and promotional materials must comply with FDA rules and are subject to FDA review, in addition to other potentially applicable federal and state laws. Similarly, in the EU any promotion of medicinal products is highly regulated and, depending on the specific jurisdiction involved, may require prior vetting by the competent national regulatory authority. In addition, product manufacturers and their facilities are subject to payment of user fees and continual review and periodic inspections by the FDA and other regulatory authorities for compliance with cGMP requirements and adherence to commitments made in the NDA, BLA or foreign marketing application. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If our customers, future customers or our collaborators or a regulatory agency discovers previously unknown problems with a product such as adverse events of unanticipated severity or frequency or problems with the facility where the product is manufactured or disagrees with the promotion, marketing or labeling of that product, a regulatory agency may impose restrictions relative to that product, the manufacturing facility or our customers or collaborators, including requiring recall or withdrawal of the product from the market or suspension of manufacturing.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, if our customers or collaborators fail to comply with applicable regulatory requirements, the FDA and other regulatory authorities may:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue an untitled letter or a warning letter asserting a violation of the law;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">seek an injunction, impose civil or criminal penalties, and impose monetary fines, restitution or disgorgement of profits or revenues;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">suspend or withdraw regulatory approval;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue safety alerts, Dear Healthcare Provider letters, press releases or other communications containing warnings or other safety information about the product;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">mandate modification of promotional materials and labeling and issuance of corrective information;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">issue consent decrees or corporate integrity agreements, or debar or exclude from federal healthcare programs;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">suspend or terminate any ongoing clinical trials or implement requirements to conduct post-marketing studies or clinical trials;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse to approve a pending NDA, BLA or comparable foreign marketing application (or any supplements thereto);</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">restrict the labeling, marketing, distribution, use or manufacturing of products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">seize or detain products or otherwise require the withdrawal or recall of products from the market;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse to approve pending applications or supplements to approved applications;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse to permit the import or export of products; or</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">refuse government contracts.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">29</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any government investigation of alleged violations of law could require us to expend significant time and resources in response and could generate negative publicity. The occurrence of any event or penalty described above may also inhibit our customers or collaborators&#8217; ability to commercialize products and our ability to generate revenues.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, the FDA&#8217;s policies, and policies of foreign regulatory agencies, may change, including due to judicial challenges, and additional regulations may be enacted that could prevent, limit or delay regulatory approval of product candidates. We cannot predict the likelihood, nature or extent of government regulation that may arise from future legislation or administrative or executive action, either in the United States or abroad. If we are slow or unable to adapt to changes in existing requirements or the adoption of new requirements or policies, or if we are not able to maintain regulatory compliance, we may be subject to enforcement action and we may not achieve or sustain profitability.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we or our customers fail to comply with certain healthcare laws, including fraud and abuse laws, we could face substantial penalties and our business, results of operations, financial condition and prospects could be adversely affected. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The healthcare industry is highly regulated. We, and our customers, are subject to various local, state, federal, national, and international laws and regulations, which include laws and regulations promulgated by the FDA, HHS, state boards of pharmacy, state health departments, and similar regulatory bodies in other countries. Additionally, our business operations and future arrangements with investigators, healthcare professionals, and consultants, among others, may expose us and our customers to broadly applicable fraud and abuse and other healthcare laws and regulations, including, without limitation, the federal Anti-Kickback Statute, the federal civil False Claims Act, the federal Civil Monetary Penalties Law, and analogous state laws. These laws may constrain the business or financial arrangements and relationships through which we will conduct our operations. Because of the breadth of these laws and narrowness of available statutory and regulatory exceptions, it is possible that some of our business activities could be regulated by or subject to challenge under one or more of such laws. We cannot ensure that our compliance controls, policies, and procedures will in every instance protect us from acts of our employees, agents, contractors, or collaborators that turn out to violate any of the laws described above. If we or our operations are found to be in violation of any of the laws described above or any other governmental regulations that apply to us, we may be subject to penalties, including civil and criminal penalties, damages, fines, imprisonment and the curtailment or restructuring of our operations, any of which could materially adversely affect our ability to operate our business and our financial results. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Ongoing healthcare legislative and regulatory reform measures may have a material adverse effect on our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the United States, there have been, and we expect there will continue to be, a number of legislative, regulatory, and administrative initiatives to contain healthcare costs. Some of these initiatives, such as ongoing healthcare reform, including with respect to reforming drug pricing, adverse changes in governmental or private funding of healthcare products and services, legislation or regulations governing patient access to care, and the delivery, coverage, pricing, and reimbursement of pharmaceuticals and healthcare services may cause our customers to change the amount of our offerings that they purchase from us or the price they are willing to pay us for these offerings. The timing of legislative, regulatory or executive action related to future healthcare reforms, if any, remains uncertain, results of the 2024 U.S. Presidential and Congressional elections, and potential subsequent developments, increase the uncertainty related to healthcare regulatory environment. If cost-containment efforts or other healthcare reform measures limit our customers&#8217; profitability, they may decrease research and development spending, which could decrease the demand for our products and services and materially adversely affect our growth prospects. Any of these factors could harm our customers&#8217; businesses, which, in turn, could materially adversely affect our business, financial condition, results of operations, cash flows, and prospects.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We cannot predict the likelihood, nature, or extent of other health reform initiatives that may arise from future legislative, administrative, or other action. Any substantial revision of applicable healthcare legislation or regulation could have a material adverse effect on the demand for our customers&#8217; products, which in turn could have a negative impact on our results of operations, financial condition, or business. Changes in the healthcare industry&#8217;s pricing, selling, inventory, distribution, or supply policies or practices, or in public or government sentiment for the industry as a whole, could also significantly reduce our revenue and results of operations.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Compliance with European Union chemical regulations could be costly and adversely affect our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Some of our products are subject to the EU regulatory regime known as The Registration, Evaluation and Authorization of Chemicals (&#8220;REACH&#8221;). REACH mandates that certain chemicals manufactured in, or imported into, the EU be registered and evaluated for their potential effects on human health and the environment. Under REACH, we and our contract manufacturers located in the EU are required to register certain of our products based on the quantity of such product imported into or manufactured in the EU and on the product&#8217;s intended end-use. The registration, evaluation and authorization process under REACH can be costly and time consuming. Problems or delays in the registration, evaluation or authorization process under REACH could delay or prevent the manufacture of some of our products in, or the importation of some of our products into, the EU, which could adversely affect our business and results of operations. In addition, if we or our contract manufacturers fail to comply with REACH, we may be subject to penalties or other enforcement actions, which could have a material adverse effect on our business and results of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The biopharmaceutical industry is subject to extensive regulatory obligations and policies that may be subject to significant and abrupt change, including due to judicial challenges, election cycles, and resulting regulatory updates and changes in policy priorities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2024, the U.S. Supreme Court issued an opinion holding that courts reviewing agency action pursuant to the Administrative Procedure Act &#8220;must exercise their independent judgment&#8221; and &#8220;may not defer to an agency interpretation of the law simply because a statute is ambiguous.&#8221; The decision will have a significant impact on how lower courts evaluate challenges to agency interpretations of law, including those by HHS, the FDA, CMS and other agencies with significant oversight of the biopharmaceutical industry. The new framework is likely to increase both the frequency of such challenges and their odds of success by eliminating one way in which the government previously prevailed in such cases. As a result, significant regulatory policies will be subject to increased litigation and judicial scrutiny.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, federal agency priorities, leadership, policies, rulemaking, communications, spending and staffing may be significantly impacted by election cycles. For example, the current U.S. presidential administration has committed to significantly reduce government spending through cuts to federal healthcare programs and reductions in the workforces of key government agencies, such as HHS, the FDA and CMS. Efforts by the current administration to limit federal agency budgets or personnel may result in reductions to agency budgets, employees and operations, which may lead to slower response times and longer review periods, potentially affecting the ability of our customers, future customers or collaborators to obtain regulatory approval for their product candidates utilizing our enzyme products. Any resulting changes in regulation may result in unexpected delays, increased costs, or other negative impacts on our business that are difficult to predict.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Intellectual Property</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our efforts to prosecute, maintain, protect and/or defend our intellectual property rights may not be successful.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We will continue to file and prosecute patent applications and maintain trade secrets in an ongoing effort to protect our intellectual property rights. It is possible that our current patents, or patents which we may later acquire, may be successfully challenged or invalidated, in whole or in part. It is also possible that we may not obtain issued patents from our pending patent applications. We sometimes permit certain patents or patent applications to lapse or go abandoned under appropriate circumstances. Due to uncertainties inherent in prosecuting patent applications, sometimes patent applications are rejected, and we subsequently abandon them. It is also possible that we may develop proprietary technology, products or services in the future that are not patentable or that the patents of others will limit or altogether preclude our ability to conduct business. In addition, any patent issued to us or to our licensor may provide us with little or no competitive advantage, in which case we may abandon such patent, license it to another entity or terminate the license agreement.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our means of protecting our proprietary rights may not be adequate and our competitors may independently develop technologies, products or services that are identical or similar to ours or that compete with ours. Patent, trademark, copyright and trade secret laws afford only limited protection for our technology, products and services. The laws of many countries do not protect our proprietary rights to as great of an extent as do the laws of the United States. Despite our efforts to protect our proprietary rights, unauthorized parties have in the past attempted, and may in the future attempt, to operate under the aspects of our intellectual property rights, or proprietary technology, products or services or products, or to obtain and use information that we regard as proprietary. Third parties may also design around our proprietary rights, which may render our protected technology, services and products less valuable, if the design around is favorably received in the marketplace. In addition, if any of our technology, products and services are covered by third-party patents or other intellectual property rights, we could be subject to various legal actions. For example, we are aware of certain third-party intellectual property that does or may overlap with aspects of the Company&#8217;s technology. We cannot assure that our technology products and/or services do not infringe, violate or misappropriate any patents or other intellectual property rights owned or controlled by others or that they will not in the future. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Litigation may be necessary to enforce our intellectual property rights, to protect our trade secrets, to determine the validity and scope of the proprietary rights of others, or to defend against claims of infringement, invalidity, misappropriation, or other claims. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any such litigation could result in substantial costs and diversion of our resources. Moreover, any settlement of or adverse judgment resulting from litigation relating to intellectual property rights could require us to obtain a license to continue to make, use, import, sell or offer for sale the technology, products or services that is the subject of the claim, or otherwise restrict or prohibit our use of the technology, products or services.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our ability to compete may decline if we do not adequately prosecute, maintain, protect and/or defend our proprietary technology, products or services or our intellectual property rights. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our success depends in part on our ability to obtain patents and maintain adequate protection of our intellectual property rights directed to our technology, products and services in the United States and other countries. We have adopted a strategy of seeking patent protection in the United States and in foreign countries with respect to certain of the technology used in or </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">relating to our products, services, and processes. As such, as of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we owned or controlled approximately 1,760 active issued patents and pending patent applications in the United States and in various foreign jurisdictions. As of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, our patents and patent applications, if issued, have terms that expire between 2024 and approximately 2045. We</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> also have license rights to a number of issued patents and pending patent applications in the United States and in various foreign jurisdictions. Our owned and licensed patents and patent applications include those directed to our enabling technology and to the methods and products that support our business in the pharmaceutical manufacturing, life sciences, oligonucleotide synthesis, and other markets. We intend to continue to apply for patents relating to our technology, methods, services and products as we deem appropriate. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Issuance of claims in patent applications and enforceability of such claims once issued involve complex legal and factual questions and, therefore, we cannot predict with any certainty whether any of our issued patents will survive invalidity claims asserted by third parties. Issued patents and patents issuing from pending applications may be challenged, invalidated, circumvented, rendered unenforceable or substantially narrowed in scope. In addition, the inventorship and ownership of the patents and patent applications may be challenged by others. Moreover, the United States Leahy-Smith America Invents Act (&#8220;AIA&#8221;), enacted in September 2011, brought significant changes to the United States patent system, which include a change to a &#8220;first to file&#8221; system from a &#8220;first to invent&#8221; system and changes to the procedures for challenging issued patents and disputing patent applications during the examination process, among other things. While interference proceedings are possible for patent claims filed prior to March 16, 2013, many of our filings will be subject to the post- and pre-grant proceedings set forth in the AIA, including citation of prior art and written statements by third parties, third party pre-issuance submissions, ex parte reexamination, inter partes review, post-grant review, and derivation proceedings. We may need to utilize the processes provided by the AIA for supplemental examination or patent reissuance. These proceedings could result in substantial cost to us even if the outcome is favorable. Even if successful, any proceeding may result in loss of certain claims. Any litigation or proceedings could divert our management's time and efforts. Even unsuccessful claims brought by third parties could result in significant legal fees and other expenses, diversion of management time, and disruption in our business. Uncertainties resulting from initiation and continuation of any patent or related litigation could harm our ability to compete.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">32</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additional uncertainty may result from legal precedent handed down by the United States Federal Circuit Court and Supreme Court as they determine legal issues concerning the scope and construction of patent claims and inconsistent interpretation of patent laws by the lower courts. Accordingly, we cannot ensure that any of our pending patent applications will result in issued patents, or even if issued, predict the breadth of the claims upheld in our, our licensors', and other companies' patents. Given that the degree of future protection for our proprietary rights is uncertain, we cannot ensure that: (i) we or our licensors were the first to invent the inventions covered by each of our pending applications, (ii) we or our licensors were the first to file patent applications for these inventions, or (iii) the proprietary technology, products or services we develop will be patentable. In addition, unauthorized parties may attempt to copy or otherwise obtain and use our technology, products and services. Monitoring unauthorized use of our intellectual property rights is difficult, and we cannot be certain that the steps we have taken will prevent unauthorized use of our technology, products or services, particularly in certain foreign countries where the local laws may not protect our proprietary rights as fully as in the United States. Moreover, third parties could practice our inventions in territories where we do not have patent protection. Such third parties may then try to import products made using our inventions into the United States or other countries. If competitors are able to use our proprietary technology, products or services, our ability to compete effectively could be harmed. In addition, others may independently develop and obtain patents for technologies, products or services that are similar to or superior to our technologies, products or services. If that happens, we may need to license these technologies, products or services, and we may not be able to obtain licenses on reasonable terms, if at all, which could cause harm to our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Similarly, foreign courts have made, and will likely continue to make, changes in how the patent laws in their respective jurisdictions are interpreted. Changes in patent laws and regulations in other countries or jurisdictions, changes in the governmental bodies that enforce them, or changes in how the relevant governmental authority enforces patent laws or regulations may weaken our ability to obtain new patents or to enforce patents that we own or may obtain in the future. For example, in some cases, we have filed for unitary patent protection under the rules implemented on June 1, 2023, in the European Patent Office. We will continue to assess this route of protection on a case-by-case basis, as applications are filed and patents are granted through the European Patent Office. This may alter our ability to protect our patents in some European countries. Further, the laws of some foreign countries do not protect proprietary rights to the same extent or in the same manner as the laws of the United States. For example, in some foreign jurisdictions, governments have the right to compel patent owners to grant others licenses to their intellectual property under certain circumstances. In addition, any protection afforded by foreign patents may be more limited than that provided under U.S. patent and intellectual property laws. We may encounter significant problems in enforcing and defending our intellectual property both in the United States and abroad. For example, if the issuance in a given country of a patent covering an invention is not followed by the issuance in other countries of patents covering the same invention, or if any judicial interpretation of the validity, enforceability or scope of the claims or the written description or enablement in a patent issued in one country is not similar to the interpretation given to the corresponding patent issued in other countries, our ability to protect our intellectual property rights in those countries may be limited. Changes in either patent laws or in interpretations of patent laws in the United States and other countries may materially diminish the value of our intellectual property rights or narrow the scope of our patent protection. We cannot predict future changes in the interpretation of patent laws or changes to patent laws that might be enacted into law by U.S. and foreign legislative bodies. Those changes may materially affect our patents or patent applications and our ability to obtain additional patent protection in the future. Any of the foregoing could have a material adverse effect on our competitive position, business, financial condition, results of operations and prospects.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Third parties may claim that we are infringing, violating or misappropriating their intellectual property rights, which may subject us to costly and time-consuming litigation and prevent us from developing or commercializing our technology, products or services. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our commercial success also depends in part on our ability to operate without infringing, violating or misappropriating patents and other intellectual property rights of third parties, and without breaching any licenses or other agreements that we have entered into with regard to our technologies, products or services. We cannot ensure that patents have not been issued, or will not be issued, to third parties that could block our ability to obtain patents or to operate as we would like. There may be patents in some countries that, if valid, may block our ability to make, use, sell, or offer for sale our technology, products or services in those countries, or import our products into those countries, if we are unsuccessful in circumventing or acquiring rights to these patents. There also may be claims in patent applications filed in some countries that, if granted and valid, may also block our ability to commercialize technology, products, services or processes in these countries if we are unable to circumvent or obtain rights to them. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">33</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The industries in which we operate and the biotechnology industry, in particular, are characterized by frequent and extensive litigation regarding patents and other intellectual property rights. Many biotechnology companies have employed intellectual property litigation as a way to gain a competitive advantage. We are aware of some patents and patent applications relating to aspects of our technologies, products or services filed by, and issued to, third parties. We cannot assure that if such third-party patents rights are asserted against us that we would ultimately prevail. Any involvement in litigation or other intellectual property proceedings inside and/or outside of the United States to defend against claims that we infringe, misappropriate or violate the intellectual property rights of others may divert our management&#8217;s time from focusing on business operations and could cause us to spend significant amounts of money. Any potential intellectual property litigation also could force us to do one or more of the following: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">stop making, using, selling, offering for sale or importing our technologies, products and services that use the subject intellectual property; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">pay monetary damages to the third party asserting claims against us; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">grant or transfer rights to third parties relating to our patents or other intellectual property rights; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">obtain from the third party asserting its intellectual property rights a license to make, sell, offer for sale, import or use the relevant technology, product or service, which license may not be available on reasonable terms, or at all; or </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">redesign those technologies, products, services or processes that use any allegedly infringing, misappropriated or violated intellectual property rights, or relocate the operations relating to the allegedly infringing, misappropriated or violated intellectual property rights to another jurisdiction, which may result in significant cost or delay to us, could be technically infeasible or could prevent us from making, selling, offering for sale, using or importing some of our technologies, products or services in the United States or other jurisdictions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may be involved in lawsuits to protect or enforce our intellectual property rights, which could be expensive, time-consuming and unsuccessful. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Competitors may infringe, violate or misappropriate our intellectual property rights or those of our licensors. To prevent infringement, violation, misappropriation or other unauthorized use, we have in the past filed, and may in the future be required to file, enforcement claims, which can be expensive and time-consuming. In addition, in an enforcement proceeding, a court may decide that the intellectual property right that we own or control is not valid, is unenforceable and/or is not infringed, violated or misappropriated. In addition, in legal proceedings against a third party to enforce a patent directed at one of our technologies, products or services, the defendant could counterclaim that our patent is invalid and/or unenforceable in whole or in part. In patent enforcement litigation in the United States, defendant counterclaims alleging invalidity and/or unenforceability are commonplace. Grounds for a patent validity challenge include an alleged failure to meet any of several statutory requirements, including lack of novelty, obviousness or non-enablement. Grounds for an unenforceability assertion could include an allegation that someone connected with prosecution of the patent withheld relevant information from the United States Patent and Trademark Office (&#8220;USPTO&#8221;) or made a misleading statement during prosecution. Third parties may also raise similar claims before the USPTO, even outside the context of enforcement litigation. The outcome following legal assertions of invalidity and unenforceability is unpredictable, and prior art could render our patents or those of our licensors invalid. If a defendant were to prevail on a legal assertion of invalidity and/or unenforceability, we would lose at least part, and perhaps all, of the patent protection on the respective technology, products or services. Such a loss of patent protection could have a material adverse impact on our business. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Even if resolved in our favor, litigation or other legal proceedings relating to our intellectual property rights may cause us to incur significant expenses and could distract our technical and management personnel from their normal responsibilities. In addition, there could be public announcements of the results of hearings, motions or other interim proceedings or developments and if securities analysts or investors perceive these results to be negative, it could have a substantial adverse effect on the price of our common stock. Such litigation or proceedings could substantially increase our expenses and reduce the resources available for operations and research and development activities. We may not have sufficient financial or other resources to conduct such litigation or proceedings adequately. Some of our competitors may be able to sustain the costs of such litigation or proceedings more effectively than we can because of their greater financial resources. Uncertainties resulting from the initiation and continuation of patent litigation or other proceedings could compromise our ability to compete in the marketplace. Furthermore, because of the substantial amount of discovery required in connection with U.S. intellectual property litigation, there is a risk that some of our confidential information could be compromised by disclosure during this type of litigation. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">34</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may not be able to enforce our intellectual property rights throughout the world.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The laws of some foreign countries where we do business do not protect intellectual property rights to the same extent as the laws of the United States. Many companies have encountered significant problems in protecting and enforcing intellectual property rights in certain foreign jurisdictions. The legal systems of certain countries, particularly certain developing countries, do not favor the enforcement of patents and other intellectual property rights, particularly those relating to biotechnology technologies. Accordingly, our efforts to protect and enforce our intellectual property rights in such countries may be inadequate. This could make it difficult for us to stop the infringement, violation or misappropriation of our patents or other intellectual property rights. Additionally, proceedings to enforce our patent rights in foreign jurisdictions could result in substantial costs and divert our efforts and attention from other aspects of our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If our biocatalysts, or the genes that code for our biocatalysts, are stolen, misappropriated or reverse engineered, others could use these biocatalysts or genes to produce competing products. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Third parties, including our contract manufacturers, customers and those involved in shipping our biocatalysts, often have custody or control of our biocatalysts. If our biocatalysts, or the genes that code for our biocatalysts, were stolen, misappropriated or reverse engineered, they could be used by other parties who may be able to reproduce these biocatalysts for their own commercial gain. If this were to occur, it may be difficult for us to challenge this type of use, especially in countries with limited intellectual property rights protection or in countries in which we do not have patents covering the misappropriated biocatalysts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Confidentiality and non-use agreements with employees, consultants, advisors and other third parties may not adequately prevent disclosures and non-use of trade secrets and other proprietary information.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to patent protection, we also rely on other intellectual property rights, including protection of copyright, trade secrets, know-how and/or other proprietary information that is not patentable or that we elect not to patent. However, trade secrets can be difficult to protect, and some courts are less willing or unwilling to protect trade secrets. To maintain the confidentiality of our trade secrets and proprietary information, we rely in part on trade secret law and contractual agreements to protect our confidential and proprietary information and processes. We generally enter into confidentiality and invention assignment agreements with our employees, consultants and third parties working on our behalf upon their commencement of a relationship with us. However, trade secrets and confidential information are difficult to protect and we cannot guarantee that we have entered into such agreements with each party that may have or have had access to our trade secrets or proprietary technology and processes and we may not enter into such agreements with all employees, consultants and third parties who have been involved in the development of our intellectual property rights. Nevertheless, without our permission or awareness, our confidential and proprietary information may be disclosed to third parties, used by the respective individuals for purposes other than for the Company&#8217;s business, or obtained through illegal means, such that third parties could reverse engineer our biocatalysts, enzyme products and processes, to attempt to develop the same technology or develop substantially equivalent technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costly and time-consuming litigation could be necessary to enforce and determine the scope of our confidential and proprietary rights, and failure to protect our trade secrets could adversely affect our competitive business position. If any of our trade secrets were lawfully obtained, we may be unable to prevent them, or those to whom they communicate it, from using that technology or information to compete with us or disclosing it publicly. Therefore, these events could have a material adverse effect on our business, financial condition and results of operations. In particular, a failure to protect our proprietary rights may allow competitors to copy our technology, which could adversely affect our pricing and market share.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to contractual measures, we try to protect the confidential nature of our proprietary information by maintaining physical security of our premises and electronic security of our information technology systems. Such security measures may not, for example, in the case of misappropriation of a trade secret by an employee, consultant or other third party with authorized access or with unauthorized access but an intent to steal, provide adequate protection for our proprietary information. Our security measures may not prevent such employee, consultant or other third party from misappropriating our trade secrets and using them or providing them to a competitor, and recourse we take against such misconduct may not provide an adequate remedy to protect our interests fully. While we use commonly accepted security measures, trade secret violations are often a matter of state law in the United States, and the criteria for protection of trade secrets can vary among different jurisdictions. If the steps we have taken to maintain our trade secrets are deemed inadequate, we may have insufficient recourse against third parties for misappropriating the trade secret.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">35</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Risks Related to Owning our Common Stock</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are subject to anti-takeover provisions in our certificate of incorporation and bylaws and under Delaware law that could delay or prevent an acquisition of our company, even if the acquisition would be beneficial to our stockholders. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Provisions in our amended and restated certificate of incorporation and our bylaws may delay or prevent an acquisition of the Company. Among other things, our amended and restated certificate of incorporation and bylaws provide for a board of directors which is divided into three classes, with staggered three-year terms and provide that all stockholder action must be effected at a duly called meeting of the stockholders and not by a consent in writing, and further provide that only our Board of Directors (our &#8220;Board&#8221;), the chairman of our Board, our chief executive officer or president may call a special meeting of the stockholders. In addition, our amended and restated certificate of incorporation allows our Board, without further action by our stockholders, to issue up to 5,000,000 shares of preferred stock in one or more series and to fix the rights, preferences, privileges and restrictions thereof. These provisions may also frustrate or prevent any attempts by our stockholders to replace or remove our current management by making it more difficult for stockholders to replace members of our Board, who are responsible for appointing the members of our management team. Furthermore, because we are incorporated in Delaware, we are governed by the provisions of Section 203 of the Delaware General Corporation Law (&#8220;DGCL&#8221;) which prohibits, with some exceptions, stockholders owning in excess of 15% of our outstanding voting stock from merging or combining with us. Finally, our charter documents establish advanced notice requirements for nominations for election to our Board and for proposing matters that can be acted upon at stockholder meetings. Although we believe these provisions together provide for an opportunity to receive higher bids by requiring potential acquirers to negotiate with our Board, they would apply even if an offer to acquire our company may be considered beneficial by some stockholders.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our bylaws designate a state or federal court located within the State of Delaware as the sole and exclusive forum for substantially all disputes between us and our stockholders, which could limit our stockholders' ability to obtain a favorable judicial forum for disputes with us our current or former directors, officers, stockholders, or other employees.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our bylaws provide that, unless we consent in writing to the selection of an alternative forum, the Court of Chancery of the State of Delaware shall be the sole and exclusive forum for (i) any derivative action or proceeding brought on behalf of us under Delaware law, (ii) any action asserting a claim of breach of a fiduciary duty owed by any current or former director, officer, or other employee of the Company to us or our stockholders, (iii) any action asserting a claim against us or any of our directors, officers, or other employees arising pursuant to any provision of the DGCL or our certificate of incorporation or bylaws (as either may be amended from time to time), (iv) any action asserting a claim against us governed by the internal affairs doctrine, or (v) any other action asserting an &#8220;internal corporate claim,&#8221; as defined under Section 115 of the DGCL. The forgoing provisions do not apply to any claims arising under the Securities Act and, unless we consent in writing to the selection of an alternative forum, the federal district courts of the United States will be the sole and exclusive forum for resolving any action asserting a claim arising under the Securities Act.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These choice of forum provisions may limit a stockholder&#8217;s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or any of our current or former directors, officers, or other employees, which may discourage lawsuits with respect to such claims. There is uncertainty as to whether a court would enforce such provisions, and the enforceability of similar choice of forum provisions in other companies&#8217; charter documents has been challenged in legal proceedings. It is possible that a court could find these types of provisions to be inapplicable or unenforceable, and if a court were to find the choice of forum provision to be inapplicable or unenforceable in an action, we may incur additional costs associated with resolving such action in other jurisdictions, which could harm our business, results of operations or financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our quarterly or annual operating results may fluctuate in the future. As a result, we may fail to meet or exceed the expectations of research analysts or investors, which could cause our stock price to decline. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our financial condition and operating results have varied significantly in the past and may continue to fluctuate from quarter to quarter and year to year in the future due to a variety of factors, many of which are beyond our control. Factors relating to our business that may contribute to these fluctuations include the following factors, as well as other factors described elsewhere in this report: </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to achieve or maintain profitability;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on a limited number of customers;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">36</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">some of our product supply agreements with customers have finite duration, may not be extended or renewed and generally do not require the customer to purchase any particular quantity or quantities of our products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the timing of customer orders and our related revenue recognition may vary significantly from quarter to quarter;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">with respect to customers purchasing our products for the manufacture of active pharmaceutical ingredients for which they have exclusivity due to patent protection, the termination or expiration of such patent protection and any resulting generic competition may materially and adversely affect our revenues, financial condition or results of operations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on a limited number of products in our performance enzymes business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our reliance on a limited number of contract manufacturers for large scale production of substantially all of our enzyme products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our relationships with, and dependence on, collaborators in our principal markets;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to successfully and timely develop and commercialize new products, including our ECO Synthesis manufacturing platform, for the markets we serve;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the potential of GSK, Merck, Novartis or any other performance enzyme customer terminating their agreements with us;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the success of our customers&#8217; products in the market and the ability of such customers to obtain regulatory approvals for products and processes;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to deploy our technology platform in life science tools markets;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on our collaborators or customers&#8217; product candidates which could unexpectedly fail at any stage of preclinical or clinical development;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on our collaborators or customers&#8217; product candidates which may lack the ability to work as intended or cause undesirable side effects;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to successfully prosecute and protect our intellectual property;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to compete if we do not adequately protect our proprietary technologies or if we lose some of our intellectual property rights;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to avoid infringing the intellectual property rights of third parties;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our involvement in lawsuits to protect or enforce our patents or other intellectual property rights;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to enforce our intellectual property rights throughout the world;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependence on, and the need to attract and retain, key management and other personnel; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to prevent the theft or misappropriation of our biocatalysts, the genes that code for our biocatalysts, know-how or technologies;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to protect our trade secrets and other proprietary information from disclosure by employees and others;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to obtain substantial additional capital that may be necessary to expand our business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to comply with the terms of our Loan Agreement;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to timely pay debt service obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers&#8217; ability to pay amounts owed to us in a timely manner;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to avoid charges to earnings as a result of any impairment of goodwill, intangible assets or other long-lived assets;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">changes in financial accounting standards or practices may cause adverse, unexpected financial reporting fluctuations and affect our reported results of operations;</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">37</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to maintain effective internal control over financial reporting;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our dependency on information technology systems, infrastructure and data;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to control and to improve product gross margins;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to protect against risks associated with the international aspects of our business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the cost of compliance with EU chemical regulations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential advantages that our competitors and potential competitors may have in securing funding or developing products;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to accurately report our financial results in a timely manner;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">results of regulatory tax examinations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">market and economic conditions may negatively impact our business, financial condition, and share price;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">business interruptions due to natural disasters, disease outbreaks or other events beyond our control;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">public concerns about the ethical, legal and social ramifications of genetically engineered products and processes;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to integrate our current business with any businesses that we may acquire in the future;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to properly handle and dispose of hazardous materials in our business;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential product liability claims; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">changes to tax law and related regulations could materially affect our tax obligations and effective tax rate; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our ability to use our NOLs to offset future taxable income.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Due to the various factors mentioned above, and others, the results of any prior quarterly or annual periods should not be relied upon as indications of our future operating performance.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We do not intend to pay cash dividends for the foreseeable future.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We currently intend to retain our future earnings, if any, to finance the further development and expansion of our business and do not intend to pay cash dividends in the foreseeable future. Any future determination to pay dividends will be at the discretion of our Board and will depend on our financial condition, results of operations, capital requirements, restrictions contained in future agreements and financing instruments, business prospects and such other factors as our Board deems relevant.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">General Risk Factors</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If securities or industry analysts do not publish research or reports about our business, or publish negative reports about our business, our stock price and trading volume could decline. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The trading market for our common stock will be influenced by the research and reports that securities or industry analysts publish about us or our business. We do not have any control over these analysts. If one or more of the analysts who cover us downgrade our stock or change their opinion of our stock in a negative manner, our stock price would likely decline. If one or more of these analysts cease coverage of our company or fail to regularly publish reports on us, we could lose visibility in the financial markets, which could cause our stock price or trading volume to decline.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We face risks associated with our international business. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we have a limited number of employees located outside of the United States, we are and will continue to be dependent upon contract manufacturers located outside of the United States. In addition, we have customers and partners located outside of the United States. Conducting business internationally exposes us to a variety of risks, including:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">changes in or interpretations of U.S. or foreign laws or regulations that may adversely affect our ability to sell our products, repatriate profits to the United States or operate our foreign-located facilities; </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">38</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the imposition or increase of tariffs and other trade barriers, including as a result of the recent U.S. presidential election; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the imposition of limitations on, or increase of, withholding and other taxes on remittances and other payments by foreign subsidiaries or joint ventures; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the imposition of limitations on genetically-engineered or other products or processes and the production or sale of those products or processes in foreign countries; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">currency exchange rate fluctuations; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">uncertainties relating to foreign laws, regulations and legal proceedings including pharmaceutical, tax, import/export, anti-corruption and exchange control laws; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the availability of government subsidies or other incentives that benefit competitors in their local markets that are not available to us; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">increased demands on our limited resources created by our operations may constrain the capabilities of our administrative and operational resources and restrict our ability to attract, train, manage and retain qualified management, technicians, scientists and other personnel; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">economic or political instability in foreign countries; </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties associated with staffing and managing foreign operations; and </span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the need to comply with a variety of United States and foreign laws applicable to the conduct of international business, including import and export control laws and anti-corruption laws. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Market and economic conditions may negatively impact our business, financial condition, and share price.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Concerns about inflation, energy costs, geopolitical issues, the United States mortgage market and a declining real estate market, unstable global credit markets and financial conditions, and volatile oil prices have led to periods of significant economic instability, diminished liquidity and credit availability, declines in consumer confidence and discretionary spending, diminished expectations for the global economy and expectations of slower global economic growth going forward, increased unemployment rates, and increased credit defaults in recent years. Our general business strategy may be adversely affected by any such economic downturns, volatile business environments and continued unstable or unpredictable economic and market conditions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2023, the closures of Silicon Valley Bank (&#8220;SVB&#8221;) and Signature Bank (&#8220;Signature&#8221;) and their placement into receivership with the Federal Deposit Insurance Corporation, and the government-brokered sale of the deposits and majority of assets of First Republic Bank to JPMorgan Chase, created bank-specific and broader financial institution liquidity risk and concerns. Although government intervention ensured that depositors at these banks have access to their funds, future adverse developments with respect to specific financial institutions or the broader financial services industry may lead to market-wide liquidity shortages, impair the ability of companies to access near-term working capital needs, and create additional market and economic uncertainty. There can be no assurance that future credit and financial market instability and a deterioration in confidence in economic conditions will not occur, and we cannot predict the impact or follow-on effects of these insolvencies more broadly or on our business in particular. Further, we cannot guarantee that the government will intervene to provide depositors with access to funds if similar events occur in the future. If other banks and financial institutions enter receivership or become insolvent in the future, our ability to access our existing cash, cash equivalents, and investments may be threatened, which could have a material adverse effect on our business and financial condition. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, if the market and economic conditions described above continue to deteriorate or do not improve, it may make any necessary debt or equity financing more difficult to complete, more costly, and more dilutive. Failure to secure any necessary financing in a timely manner and on favorable terms could have a material adverse effect on our growth strategy, financial performance, and stock price. Additionally, rising rates of inflation have increased the costs associated with conducting our business, including by causing substantial increases in the costs of materials, including raw materials and consumables, equipment, services, and labor. Moreover, given the unpredictable nature of the current economic climate, including future changes in rates of inflation and the potential for high tariffs or other trade barriers, it may be increasingly difficult for us to predict and control our future expenses, which may harm our ability to conduct our business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">39</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Business interruptions resulting from disasters or other disturbances could delay us in the process of developing our products and could disrupt our sales. Our business continuity and disaster recovery plans may not adequately protect us from a serious disaster or other disturbance.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters and other facilities are located in the San Francisco Bay Area, which in the past has experienced both severe earthquakes and wildfires. Earthquakes, wildfires or other natural disasters could severely disrupt our operations, and have a material adverse effect on our business, results of operations, financial condition and prospects. We are also vulnerable to other types of disasters and other events that could disrupt our operations, such as riot, civil disturbances, war, terrorist acts, public health emergencies, domestic or foreign conflicts, infections in our laboratory or production facilities or those of our customers or contract manufacturers and other events beyond our control. If a natural disaster or other event occurred that prevented us from using all or a significant portion of our headquarters, that damaged critical infrastructure, such as our enterprise financial systems or manufacturing resource planning and enterprise quality systems, or that otherwise disrupted operations, including due to impacts on our collaborators, suppliers or other third parties on which we rely, it may be difficult or, in certain cases, impossible, for us to continue our business for a substantial period of time. The disaster recovery and business continuity plans we have in place currently are limited and are unlikely to prove adequate in the event of a serious disaster or similar event, and we may incur substantial expenses as a result of the limited nature of such plans. We do not carry insurance for earthquakes and we may not carry sufficient business interruption insurance to compensate us for losses that may occur. Any losses or damages we incur could have a material adverse effect on our cash flows and success as an overall business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are dependent on information technology systems, infrastructure and data, and any failure of these systems could harm our business. Security breaches, loss of data and other disruptions, whether related to artificial intelligence or other means, could compromise sensitive information related to our business or individuals, or prevent us from accessing critical information and expose us to liability, which could adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information technology helps us operate efficiently, interface with customers, maintain financial accuracy and efficiency and accurately produce our financial statements. If we do not allocate and effectively manage the resources necessary to build and sustain the proper technology infrastructure, we could be subject to transaction errors, processing inefficiencies, the loss of customers, business disruptions or the loss of or damage to intellectual property or data through security breach. If our information technology systems do not effectively collect, store, process and report relevant data for the operation of our business, whether due to equipment malfunction or constraints, software deficiencies, or human error, our ability to effectively plan, forecast and execute our business plan and comply with applicable laws and regulations will be impaired, perhaps materially. Our information technology systems and those of our external vendors, strategic partners and other contractors or consultants are vulnerable to attack and damage or interruption from computer viruses and malware (e.g. ransomware), malicious code, natural disasters, terrorism, war, telecommunication and electrical failures, hacking, cyberattacks, phishing attacks and other social engineering schemes, employee theft or misuse, human error, fraud, denial or degradation of service attacks, sophisticated nation-state and nation-state-supported actors or unauthorized access or use by persons inside our organization, or persons with access to systems inside our organization. The prevalence of artificial intelligences (&#8220;AI&#8221;) tools in the global marketplace and rapid changes thereto raise the risk to our systems by making more sophisticated tools available to bad actors, and by making our data more vulnerable to inadvertent leaks or corruption by employees and others. Any such issues could materially and adversely affect our financial condition, results of operations, cash flows and the timeliness with which we report our internal and external operating results. The accessibility of AI intensifies these risks.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business may require us to use and store personal information of our customers, employees, and business partners. This may include names, addresses, phone numbers, email addresses, contact preferences, tax identification numbers and payment account information. We require usernames and passwords in order to access our information technology systems. We also use encryption and authentication technologies to secure the transmission and storage of data. However, these security measures may be compromised as a result of security breaches by unauthorized persons, employee error, malfeasance, faulty password management or other irregularity, and result in persons obtaining unauthorized access to our data or accounts. Third parties may attempt to fraudulently induce employees or customers into disclosing usernames, passwords or other sensitive information, which may in turn be used to access our information technology systems. For example, our employees have received &#8220;phishing&#8221; emails and phone calls attempting to induce them to divulge passwords and other sensitive information. The accessibility of AI intensifies these risks.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">40</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition, unauthorized persons may attempt to hack into our products or systems to obtain personal data relating to employees and other individuals, our confidential or proprietary information or confidential information we hold on behalf of third parties. We also rely on external vendors to supply and/or support certain aspects of our information technology systems. The systems of these external vendors may contain defects in design or manufacture or other problems that could unexpectedly compromise information security of our own systems, and we are dependent on these third parties to deploy appropriate security programs to protect their systems. If we or our third-party vendors were to experience a significant cybersecurity breach of our or their information systems or data, the costs associated with the investigation, remediation and potential notification of the breach to counterparties and data subjects could be material. Our remediation efforts may not be successful. Further, if such an event were to occur and cause interruptions in our operations, it could result in a material disruption of our development programs and our business operations, whether due to a loss, corruption or unauthorized disclosure of our trade secrets, personal information or other proprietary or sensitive information or other similar disruptions. Attacks upon information technology systems are also increasing in their frequency, levels of persistence, sophistication and intensity, and are being conducted by sophisticated and organized groups and individuals with a wide range of motives and expertise. As a result of the remote work policies we initiated in response to the COVID-19 pandemic, and our continued hybrid working environment, we may also face increased cybersecurity risks due to our reliance on internet technology and the number of our employees who are working remotely, which may create additional opportunities for cybercriminals to exploit vulnerabilities. The accessibility of AI intensifies these risks. We have programs in place to detect, contain and respond to data security incidents, and we make ongoing improvements to our information-sharing products in order to minimize vulnerabilities, in accordance with industry and regulatory standards. However, because the techniques used to obtain unauthorized access to or sabotage systems change frequently and may be difficult to detect, we may not be able to anticipate and prevent these intrusions or mitigate them when and if they occur. Even if identified, we may be unable to adequately and timely investigate or remediate incidents or breaches due to attackers increasingly using tools and techniques that are designed to circumvent controls, to avoid detection and to remove or obfuscate forensic evidence.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We and certain of our external vendors are from time to time subject to cyberattacks and security incidents. While we do not believe that we have experienced any significant system failure, accident, or security breach to date, if such an event were to occur, it could result in the unauthorized access to or unauthorized use, disclosure, release or other processing of personal information, it may be necessary to notify individuals, governmental authorities, supervisory bodies, the media and other parties pursuant to privacy and security laws. Any security compromise affecting us, our service providers, vendors, strategic partners, other contractors, consultants or our industry, whether real or perceived, could harm our reputation, erode confidence in the effectiveness of our security measures and lead to regulatory scrutiny. To the extent that any disruption or security breach were to result in a loss of, or damage to, our data or systems, or inappropriate disclosure of confidential or proprietary or personal information, we could incur liability, including litigation exposure, penalties and fines, which may not be covered by insurance or may be in excess of our insurance coverage. Additionally, we could become the subject of regulatory action or investigation, litigation, including class actions, or other claims and our competitive position could be harmed and the further development of our products could be delayed. If such an event were to occur and cause interruptions in our operations, it could result in a material disruption of our business and could materially and adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Actual or perceived failures to comply with applicable data protection, privacy and security laws, regulations, standards and other requirements could adversely affect our business, results of operations and financial condition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The global data protection landscape is rapidly evolving, and we are or may become subject to state, federal and foreign laws, regulations, decisions and directives governing the privacy, security, collection, storage, transmission, use, processing, retention and disclosure of personal information. Any failure or perceived failure by us to comply with applicable laws or regulations, our internal policies and procedures or our contracts governing our processing of personal information could result in negative publicity, government investigations and enforcement actions, claims by third parties and damage to our reputation, any of which could have a material adverse effect on our operations, financial performance and business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">41</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the United States, Health Insurance Portability and Accountability Act (&#8220;HIPAA&#8221;) imposes, among other things, certain standards relating to the privacy, security, transmission and breach reporting of certain individually identifiable health information. Certain states have also adopted and continue to adopt new privacy and security laws and regulations, which govern the privacy, processing and protection of health-related and other personal information. Such laws and regulations will be subject to interpretation by various courts and other governmental authorities, thus creating potentially complex compliance issues for us and our future customers and strategic partners. For example, the California Consumer Privacy Act (&#8220;CCPA&#8221;) went into effect on January 1, 2020. The CCPA creates individual privacy rights for California consumers and increases the privacy and security obligations of entities handling certain personal information. The CCPA also provides for civil penalties for violations, as well as a private right of action for data breaches (which has increased the likelihood of, and risks associated with, data breach litigation). Further, the California Privacy Rights Act (&#8220;CPRA&#8221;) significantly amended the CCPA, which went into effect in January 2023. It imposes additional data privacy obligations on covered businesses, including additional consumer rights processes, limitations on data uses, new audit requirements for higher risk data and opt outs for certain uses of sensitive data. It also created a new California privacy protection agency authorized to issue substantive regulations and could result in increased privacy and information security enforcement. Additional compliance investment and potential business process changes may also be required as these laws continue to evolve. Similar laws regulating personal information generally or health information in particular have passed in more than a dozen states and have been proposed in other states and at the federal level, reflecting a trend toward more stringent privacy legislation in the United States. The same is true for emerging laws and regulations related to AI. These developments increase our compliance burden and our risk, including risks of regulatory fines, litigation and associated reputational harm. Any liability from failure to comply with the requirements of these laws could adversely affect our financial condition. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Furthermore, the Federal Trade Commission (&#8220;FTC&#8221;) and many state Attorneys General continue to enforce federal and state consumer protection laws against companies for the collection, use, sharing and security of personal information that appear to be unfair or deceptive. For example, according to the FTC, failing to take appropriate steps to keep consumers&#8217; personal information secure can constitute unfair acts or practices in or affecting commerce in violation of Section 5(a) of the Federal Trade Commission Act. The FTC expects a company&#8217;s data security measures to be reasonable and appropriate in light of the sensitivity and volume of consumer information it holds, the size and complexity of its business, and the cost of available tools to improve security and reduce vulnerabilities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the European Union (&#8220;EU&#8221;), the EU General Data Protection Regulation (&#8220;EU GDPR&#8221;) governs the processing of personal data. The United Kingdom (&#8220;UK&#8221;) has implemented the EU GDPR as the UK GDPR which sits alongside the UK Data Protection Act 2018 (the &#8220;UK GDPR&#8221;, and together with the EU GDPR, the &#8220;GDPR&#8221;). The GDPR imposes requirements for controllers, including (among others) specific requirements for obtaining valid consent where consent is the legal basis for processing, requirements around accountability and transparency, the obligation to consider data protection when any new products or services are developed, the obligation to comply with individuals&#8217; data protection rights, and the obligation to notify relevant data supervisory authorities of notifiable personal data breaches without undue delay (and no later than 72 hours) after becoming aware of the personal data breach (and affected data subjects where the personal data breach is likely to result in a high risk to their rights and freedoms). The EU GDPR provides that EU member states may enact their own additional national laws and regulations regarding the processing of genetic, biometric or health data, which could affect our ability to use and share personal data or could cause our costs to increase and potentially harm our business and financial condition. Failure to comply with the requirements of the GDPR can result in (among other things) fines of up to the greater of &#8364;20 million (under the EU GDPR) or &#163;17.5 million (under the UK GDPR) or 4% of an organization&#8217;s total worldwide annual turnover of the preceding financial year and other administrative penalties. To the extent that we are subject to the GDPR, compliance with the GDPR may require substantial amendments to our procedures and policies and these changes could adversely impact our business by increasing operational and compliance costs or impact business practices. Further, there is a risk that the amended policies and procedures will not be implemented correctly or that individuals within the business will not be fully compliant with the new procedures. There is a risk that we could be impacted by a cybersecurity incident that results in loss or unauthorized disclosure of personal data, potentially resulting in us facing harms similar to those described above.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">42</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Among other requirements, the EU GDPR prohibits the international transfer of personal data subject to the EU GDPR from the European Economic Area (&#8220;EEA&#8221;) to third countries that the European Commission does not recognize as having an &#8216;adequate&#8217; level of data protection, unless a data transfer mechanism (such as, EU Standard Contractual Clauses or &#8220;EU SCCs&#8221;) has been put in place or a derogation under the EU GDPR can be relied on. In certain cases, companies must also carry out a transfer privacy impact assessment (&#8220;TIA&#8221;) which, among other things, assesses laws governing access to personal data in the recipient country and considers whether supplementary measures that provide privacy protections additional to those provided under the EU SCCs will need to be implemented to ensure an &#8216;essentially equivalent&#8217; level of data protection to that afforded in the EEA. In July 2023, the European Commission adopted its Final Implementing Decision granting the United States adequacy (&#8220;Adequacy Decision&#8221;) for EU-U.S. transfers of personal data for entities self-certified to the Atlantic Data Privacy Framework (&#8220;DPF&#8221;). Entities relying on EU SCCs for transfers to the United States are also able to rely on the analysis in the Adequacy Decisions as support for their TIA regarding the equivalence of U.S. national security safeguards and redress. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The UK GDPR also imposes similar restrictions on transfers of personal data from the UK to jurisdictions that the UK Government does not consider adequate, including the United States. The UK Government has published its own form of the EU SCCs, known as the International Data Transfer Agreement and an International Data Transfer Addendum to the EU SCCs. The UK Information Commissioner&#8217;s Office has also published its own version of the TIA, although entities may choose to adopt either the EU or UK-style TIA. Further, on September 21, 2023, the UK Secretary of State for Science, Innovation and Technology established a UK-U.S. data bridge (i.e., a UK equivalent of the Adequacy Decision) and adopted UK regulations to implement the UK-U.S. data. Personal data may now be transferred from the UK under the UK-U.S. data bridge through the UK extension to the DPF to organizations self-certified under the UK extension to the DPF.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As we continue to expand into other foreign countries and jurisdictions, we may be subject to additional laws and regulations that may affect how we conduct business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we work to comply with applicable laws, regulations and standards, our contractual obligations and other legal obligations, these requirements are evolving and may be modified, interpreted and applied in an inconsistent manner from one jurisdiction to another, and may conflict with one another or other legal obligations with which we must comply. Various federal, state and foreign legislative or regulatory bodies may enact new or additional laws and regulations concerning privacy, data-retention and data-protection issues, including laws or regulations mandating disclosure to domestic or international law enforcement bodies, which could adversely impact our business or our reputation with customers. For example, some countries have adopted laws mandating that certain personal information regarding customers in their country be maintained solely in their country. Having to maintain local data centers and redesign product, service and business operations to limit processing of personal information to within individual countries could increase our operating costs significantly. Any failure, or perceived failure, by us to comply with federal, state or international privacy, data-retention or data-protection-related laws, regulations, orders or industry self-regulatory principles could result in proceedings or actions against us by governmental entities or others, a loss of customer confidence, damage to our brand and reputation and a loss of customers, any of which could have an adverse effect on our business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">43</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Evolving expectations around corporate responsibility practices, specifically related to environmental, social and governance (&#8220;ESG&#8221;) matters, may expose us to reputational and other risks.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investors, stockholders, customers, suppliers and other third parties are increasingly focusing on ESG and corporate social responsibility endeavors and reporting. Companies that do not adapt to or comply with the evolving investor or stakeholder expectations and standards, or that are perceived to have not responded appropriately, may suffer from reputational damage, which could result in the business, financial condition and/or stock price of a company being materially and adversely affected. For example, certain customers have inquired about our ESG practices and may impose ESG guidelines, procurement policies, sustainability standards, mandates or reporting requirements for, and may scrutinize relationships more closely with, their suppliers, including us, which may lengthen sales cycles, increase our costs or impair our ability to attract and retain customers. Further, this increased focus on ESG issues may result in new regulations, international accords and/or third-party requirements that could adversely impact our business, or lead to certain stockholders reducing or eliminating their holdings of our stock. For example, California has passed new laws regarding environmental disclosures that may directly impact us in the future. If we are held to be out of compliance with such laws or other similar laws, we could face penalties and/or reputational harm. We may also be subject to new rules and laws that reflect competing trends in the ESG space, leading to difficulties in compliance. At the same time, certain governmental representatives and other stakeholders have increasingly expressed or pursued opposing views, legislation and investment expectations around sustainability initiatives, including the enactment or proposal of &#8220;anti-ESG&#8221; legislation or policies. An allegation or perception that we have not taken sufficient action or have taken the wrong actions in these areas could negatively harm our business and reputation.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_22"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1B. UNRESOLVED STAFF COMMENTS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="margin-top:9pt;text-indent:18pt"><span><br/></span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_25"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1C. CYBERSECURITY</span></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" id="f-36" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk Management and Strategy</span></div><div style="margin-top:9pt;text-indent:18pt"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock" id="f-37" continuedAt="f-37-1" escape="true"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the normal course of business, we may collect and store personal information and other sensitive information, including proprietary and confidential business information, trade secrets, intellectual property, sensitive third-party information and employee information.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></ix:nonNumeric><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-37-1">We assess and identify cybersecurity risk to such information by maintaining cybersecurity policies that require continuous monitoring and detection programs and network security precautions. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesIntegratedFlag" format="ixt:fixed-true" id="f-38">Our program incorporates industry-standard frameworks, policies and practices designed to protect the privacy and security of our sensitive information.</ix:nonNumeric></ix:continuation> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage cybersecurity risks by maintaining various protections designed to safeguard against cyberattacks, including firewalls and virus detection software, and periodic end user training on common cybersecurity threats (e.g. phishing exercises and interactive trainings). We have established our disaster recovery plan and we protect against business interruption by backing up our major systems. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementThirdPartyEngagedFlag" format="ixt:fixed-true" id="f-39">In addition, we periodically scan our environment for any vulnerabilities, perform penetration testing and engage third parties to assess effectiveness of our data security practices. A third party security consultant conducts regular network security reviews, scans and audits, and we may consult with other external experts as warranted by a particular cybersecurity incident or threat.</ix:nonNumeric> In addition, we maintain insurance that includes cybersecurity coverage.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Areas of cybersecurity risk are assessed bi-annually, and updates are reported by our Chief Financial Officer to the Board&#8217;s Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually. In this way, our program to manage cybersecurity risk integrates with our overall risk management processes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" format="ixt:fixed-true" id="f-40">With respect to third parties who provide services affecting critical business management systems, we collect and maintain SOC2 or SOC1 type II reports (attestation of controls at a service organization over a minimum six-month period). For other third-party service providers, cybersecurity risk is addressed as appropriate.</ix:nonNumeric></span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" format="ixt:fixed-false" id="f-41">As of the date of this report, we are not aware of any risks from cybersecurity threats that have materially affected or are reasonably likely to materially affect us, including our business strategy, results of operations and financial condition. Despite the implementation of our cybersecurity program, our security measures cannot guarantee that a significant cyberattack will not occur.</ix:nonNumeric> A successful attack on our information technology systems could have significant consequences to the business. While we devote resources to our security measures to protect our systems and information, these measures cannot provide absolute security. See &#8220;Risk Factors &#8211; General Risk Factors&#8221; for additional information about the risks to our business associated with a breach or compromise to our information technology systems.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock" id="f-42" continuedAt="f-42-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Governance</span></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskRoleOfManagementTextBlock" id="f-43" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors has visibility into cybersecurity risks through its Audit Committee and through the process described below. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="f-45" escape="true"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="f-44" escape="true">The Audit Committee has oversight of the Company&#8217;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#8217;s computerized information system controls and security.</ix:nonNumeric></ix:nonNumeric></span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Areas of cybersecurity risk are assessed bi-annually, and updates are reported by the Chief Financial Officer to the Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually.</span></div></ix:nonNumeric><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">45</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-42-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" id="f-46" escape="true">Senior management has appointed a <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" format="ixt:fixed-true" id="f-47">Cybersecurity Council</ix:nonNumeric> that is responsible for identifying, escalating, and facilitating the assessment and determination of the materiality of cybersecurity incidents and threats. The Cybersecurity Council is made up of representatives of IT, Legal and Finance, as well as ad hoc additional members depending on the circumstances of the incident or threat.</ix:nonNumeric> </span><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" id="f-48" escape="true"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The members of the Cybersecurity Council do not have specific expertise in cybersecurity risk other than the Vice President of Information Technology (&#8220;VP IT&#8221;) who has more than 20 years of experience, and engages with trusted third-party experts for support and guidance when additional expertise is required. In December 2024, the VP IT exited the company, and IT expert advice to the Cybersecurity Council is currently provided by an external cybersecurity specialist. This specialist has extensive experience managing cybersecurity functions in his prior external roles, where he was responsible for overseeing cybersecurity strategy and operations, including incident response, threat intelligence, security awareness training programs, risk assessments and remediation, and regulatory and compliance matters.</span></ix:nonNumeric></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" id="f-49" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An actual or suspected cybersecurity incident that jeopardizes the confidentiality, integrity, or availability of Codexis' information systems or any information residing therein (or threat that presents significant risk to our information systems as identified by IT) is reported to the Cybersecurity Council by our IT Department. The focus of the Cybersecurity Council is on the investigation and facilitation of senior management&#8217;s assessment and determination of materiality of an incident or threat, and such investigation is separate but contemporaneous with the investigation(s) done under other applicable programs, policies, and plans regarding cybersecurity. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" format="ixt:fixed-true" id="f-50">The Cybersecurity Council will liaise directly with other investigation(s) and share information and assessments. Along with assistance from the Cybersecurity Council as necessary, senior management reports its materiality determination and analysis, including necessary facts to support its determination, to the Audit Committee of the Board of Directors. Pursuant to its charter, the Audit Committee may, along with senior management, report such determination to the Board of Directors.</ix:nonNumeric></span></div></ix:nonNumeric></ix:continuation><div style="text-indent:18pt"><span><br/></span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_28"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 2. PROPERTIES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FACILITIES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we lease approximately 77,300 square feet of office and laboratory space.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our lease (&#8220;RWC Lease&#8221;) with Metropolitan Life Insurance Company (&#8220;MetLife&#8221;) includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#8220;200/220 Penobscot Space&#8221;), approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#8220;400 Penobscot Space&#8221;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#8220;Penobscot Space&#8221;), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#8220;Chesapeake Space&#8221;). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2003 and the RWC lease has been amended multiple times since then to adjust the leased space and terms of the RWC Lease. In December 2024, we entered into a Ninth Amendment to the RWC Lease (the &#8220;Ninth Amendment&#8221;) with MetLife with respect to the Penobscot Space and the Chesapeake Space to extend the term of the RWC Lease for additional periods. Pursuant to the Ninth Amendment, the term of the lease for both the Penobscot Space and the Chesapeake Space has been extended through August 2032. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the Chesapeake Space for five (5) years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the facility that we currently lease in Redwood City, California is adequate for our needs for the immediate future and that, should it be needed, additional space can be leased to accommodate any future growth.<br/></span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_31"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 3. LEGAL PROCEEDINGS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are currently not a party to any material pending litigation or other material legal proceedings.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_34"></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 4. MINE SAFETY DISCLOSURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">46</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_37"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART II</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_40"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 5. MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS AND ISSUER PURCHASES OF EQUITY SECURITIES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">MARKET INFORMATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our common stock is quoted on the Nasdaq Global Select Market (&#8220;Nasdaq</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), under the symbol &#8220;CDXS.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of February&#160;24, 2025, there were approximatel</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">y 123 </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">stockholders of record. A substantially greater number of stockholders may be &#8220;street name&#8221; or beneficial holders, whose shares are held of record by banks, brokers and other financial institutions.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Dividend Policy</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have never declared or paid cash dividends on our common stock, and we currently do not plan to declare dividends on shares of our common stock in the foreseeable future. We expect to retain our future earnings, if any, for use in the operation and expansion of our business. In addition, unless waived, the terms of our five-year term loan and security agreement (the &#8220;Loan Agreement&#8221;) with Innovatus Life Sciences Lending Fund I, LP (&#8220;Innovatus&#8221;) prohibit us from paying any cash dividends or making other distributions. The payment of cash dividends in the future, if any, will be at the discretion of our Board of Directors and will depend upon such factors as earnings levels, capital requirements, our overall financial condition and any other factors deemed relevant by our Board of Directors. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Securities Authorized for Issuance under Equity Compensation Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item concerning securities authorized for issuance under equity compensation plans is incorporated by reference from the information that will be set forth in the Definitive Proxy Statement to be filed with the Securities and Exchange Commission in connection with the Annual Meeting of Stockholders to be held in 2025 (the &#8220;2025 Proxy Statement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Stock Price Performance Graph</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tabular information and graph compare our total common stock return with the total return for (i)&#160;the Nasdaq Composite Index and (ii)&#160;the Nasdaq Biotechnology Total Return Index for the period December 31, 2019 through December&#160;31, 2024. The figures represented below assume an investment of $100 in our common stock at the closing price on December 31, 2019 and in the Nasdaq Composite Index and the Nasdaq Biotechnology Total Return Index on December 31, 2019 and the reinvestment of dividends into shares of common stock. The comparisons in the table and graph are required by the SEC and are not intended to forecast or be indicative of possible future performance of our common stock. The tabular information and graph shall not be deemed &#8220;soliciting material</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> or to be &#8220;filed</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> for purposes of Section&#160;18 of the Exchange Act or otherwise subject to the liabilities under that Section, and shall not be deemed to be incorporated by reference into any of our filings under the Securities Act or the Exchange Act. </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:27.408%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.502%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.841%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.841%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.705%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$100 investment in stock or index</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Ticker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2019</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2020</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2021</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Codexis, Inc.</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">CDXS</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.00&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">136.52&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">195.56&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">29.14&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.07&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">29.83&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Nasdaq Composite Total Return</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">XCMP</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.00&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">144.92&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">177.06&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">119.45&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">172.78&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">223.87&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Nasdaq Biotechnology (Total Return) Index</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">XNBI</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100.00&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">126.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">126.45&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113.65&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118.87&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">118.20&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">47</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><img src="cdxs-20241231_g1.jpg" alt="2757" style="height:479px;margin-bottom:5pt;vertical-align:text-bottom;width:650px"/></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Unregistered Sales of Equity Securities and Use of Proceeds</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, we did not issue or sell any unregistered securities not previously disclosed in a Quarterly Report on Form 10-Q or in a Current Report on Form 8-K.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Issuer Purchases of Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None.</span></div><div style="margin-top:9pt;text-indent:18pt"><span><br/></span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_43"></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 6. [RESERVED]</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">48</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_46"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;7. MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF</span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">The following management's discussion and analysis of our financial condition and results of operations should be read in conjunction with our audited consolidated financial statements and the related notes thereto included elsewhere in this Annual Report on Form 10-K. This Annual Report on Form&#160;10-K contains forward-looking statements within the meaning of Section&#160;21E of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;). These statements include, but are not limited to, expectations regarding our strategy, business plans, financial performance and developments relating to our industry. These statements are often identified by the use of words such as &#8220;may,&#8221; &#8220;will,&#8221; &#8220;expect,&#8221; &#8220;believe,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; &#8220;estimate,&#8221; or &#8220;continue,&#8221; and similar expressions or variations. Such forward-looking statements are subject to risks, uncertainties and other factors that could cause actual results and the timing of certain events to differ materially from future results expressed or implied by such forward-looking statements. Factors that could cause or contribute to such differences include, but are not limited to, those discussed in Part I, Item IA: "Risk Factors," of this Annual Report on Form&#160;10-K and elsewhere in this report. The forward-looking statements in this Annual Report on Form&#160;10-K represent our views as of the date of this Annual Report on Form&#160;10-K. We anticipate that subsequent events and developments will cause our views to change. However, while we may elect to update these forward-looking statements at some point in the future, we have no current intention of doing so except to the extent required by applicable law. You should, therefore, not rely on these forward-looking statements as representing our views as of any date subsequent to the date of this Annual Report on Form&#160;10-K.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_1700"></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Business Overview</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a leading provider of enzymatic solutions for efficient and scalable therapeutics manufacturing, and we leverage our proprietary CodeEvolver directed evolution technology platform to discover, develop, enhance, and commercialize novel, high-performance enzymes and other classes of proteins. Enzymes are naturally occurring biological molecules critical to almost all biochemical reactions that sustain life. They can be precisely engineered and optimized for specific functions, and to have particular characteristics, such as an ability to survive environments in which natural enzymes cannot, or to perform (bio)chemical transformations different than those for which they naturally evolved. We focus on leveraging our technology and capacity to enhance the properties and performance of enzymes to drive pivotal improvements in manufacturing of complex therapeutics across two key focus areas: our foundational, revenue-generating pharma biocatalysis business and our Enzyme-Catalyzed Oligonucleotide (ECO) Synthesis (&#8220;ECO Synthesis&#8221;) manufacturing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">platform, which is comprised of enzymatic tools and processes, designed to enable large-scale manufacture of RNA interference (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RNAi</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) therapeutics.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> In July 2023, we announced that we discontinued investment in certain development programs, primarily in our novel biotherapeutics business segment. As part of this strategic prioritization, during 2024, we completed the divestiture and monetization of certain biotherapeutics assets as well as certain non-core life science assets, including in genomics and next generation sequencing applications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ur revenue-generating</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> pharma biocatalysis business (formerly our pharmaceuticals manufacturing business), we utilize our CodeEvolver technology platform to develop optimized enzymes that are used by some of the world&#8217;s largest pharmaceutical companies to improve the efficiency and productivity of their manufacturing processes for small molecule therapeutics. Our unique enzymes drive improvements such as higher yields, increased purity, reduced energy usage and waste generation, all of which lead to improved efficiency and reduced costs in small-molecule manufacturing. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">49</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also use the CodeEvolver platform technology to develop enzymes for the synthesis of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RNAi</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> therapeutics through</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> our </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ECO Synthesis manufacturing </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">platform, where our enzymes are poised to deliver many of the same benefits we offer in pharma biocatalysis across purity, yield, and improved manufacturing efficiency. In November 2024, we presented data at the TIDES EU conference demonstrating the successful end-to-end enzymatic synthesis of an entire commercially approved siRNA therapeutic asset with the ECO Synthesis manufacturing platform. In addition to using full enzymatic sequential synthesis, adding one nucleotide at time to synthesize the two strands from beginning to end, we demonstrated synthesis of the same siRNA asset using three other routes utilizing enzymatic ligation with our double-stranded RNA (&#8220;dsRNA&#8221;) ligase, which can stitch together fragments of chemically and/or enzymatically synthesized RNA to form the full siRNA drug structure. For the three other routes, our data highlighted that full-length oligos of equal quality and yields were obtained whether the fragments were made with enzymes or by traditional phosphoramidite chemistry. At the end of 2024, we completed the build-out of our ECO Synthesis Innovation Lab, a facility that uses our ECO Synthesis manufacturing platform to synthesize gram-scale quantities of a customer&#8217;s desired siRNA construct suitable for pre-clinical testing. In 2025, we expect to manufacture </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">good laboratory practice</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (&#8220;GLP&#8221;)-grade siRNA for customers in our Innovation Lab under development services contracts model, and we anticipate entering a partnership with a large-scale </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">contract development and manufacturing organization (&#8220;CDMO&#8221;) </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">to use our ECO Synthesis platform of enzymatic tools and processes to synthesize </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">good manufacturing practices (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">GMP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">)</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">-grade siRNA drug substance for our customers. We expect to expand our enzymatic tools and process offering as further enhance the ECO Synthesis manufacturing platform to address the overall market needs for scalable and sustainable RNAi manufacturing.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recent Developments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Finalized Acquisition and License Agreement for certain non-core Life Sciences assets</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In line with our strategy relating to non-core Life Sciences assets, in January 2025 we sold assets that were developed under the seqWell Agreement to seqWell in exchange for the right to receive a cash payment upon future events and a warrant to purchase seqWell&#8217;s common stock exercisable upon future events, and terminated the seqWell Agreement.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:112%">Strengthened Board of Directors with new appointments</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We announced the appointment of Raymond De </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">Vr&#233;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">, PhD, to our Board of Directors on November 12, 2024, followed by the appointment of Christos Richards on January 16, 2025.</span></div><div style="text-indent:18pt"><span><br/></span></div><div style="text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Financing Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we filed a Registration Statement on Form S-3 with the SEC, that automatically became effective upon its filing, under which we may sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to that Registration Statement on Form S-3. Pursuant to that post-effective amendment, we registered an aggregate $200.0&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement (&#8220;EDA&#8221;) with Piper Sandler &amp; Co (&#8220;PSC&#8221;), under which PSC, as our exclusive agent, at our discretion and at such times that we determined from time to time, may have sold over a three-year period from the execution of the EDA up to a maximum of $50.0 million of shares of our common stock. Under the terms of the EDA, PSC was permitted to sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;). We were not required to sell any shares at any time during the term of the EDA. On April 24, 2024, we terminated the EDA. No shares of our common stock were issued and sold pursuant to the EDA during the year ended December 31, 2024. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA for gross proceeds of $8.7 million, or $7.9 million in net proceeds after PSC's commissions and direct offering expenses of $0.7 million. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 2, 2024, we entered into a Controlled Equity Offering&#8480; Sales Agreement (the &#8220;Cantor Sales Agreement&#8221;) with Cantor Fitzgerald &amp; Co., as sales agent (&#8220;Cantor&#8221;), under which Cantor, at our discretion and at such times that we may determine from time to time, may sell up to a maximum of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$75.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of shares of our common stock. Under the terms of the Cantor Sales Agreement, Cantor may sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act. On May 2, 2024, we filed a registration statement on Form S-3 registering the offer and sale of these shares under the Securities Act which became effective on May 14, 2024. We will pay a commission of up to 3.0% of gross sales proceeds of any common stock sold under the Cantor Sales Agreement. During the year ended December 31, 2024, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10,440,000</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of our common stock were issued and sold pursuant to the Cantor Sales Agreement and we received gross proceeds of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$31.3 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, or </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$29.7 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in net proceeds after Cantor&#8217;s commissions and direct offering expenses of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.6 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, $43.7 million remained available for sale under the Cantor Sales Agreement.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">50</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024, we entered into the Loan Agreement with Innovatus consisting of up to two tranches, of which the first tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$30.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> was disbursed upon execution of the Loan Agreement. We will be eligible to draw on the second tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$10.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> upon achievement of certain milestones including certain pre-specified revenue thresholds and subject to payment of a facility fee equal to 1.00% of the amount of such term loan. The </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Term Loan carries an interest-only period of 36 months (with the possibility to extend up to 48 months upon achievement of certain pre-specified financial milestones) and will bear interest at a floating rate of the sum of (a) the greater of (i) prime rate and (ii) 7.50%, plus (b) 3.25%.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_52"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">RESULTS OF OPERATIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table shows the amounts from our consolidated statements of operations for the periods presented (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:43.198%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.771%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.771%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.778%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%&#160;of&#160;Total&#160;Revenues</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36,786&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">61&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">84&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,559&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Costs and operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,288&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46,263&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58,885&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80,099&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">84&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,148&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53,250&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52,172&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">76&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;text-indent:9pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,167&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,984&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total costs and operating expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">117,864&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,212&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173,471&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">199&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">197&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss from operations</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(58,519)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(68,069)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(34,881)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(99)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(97)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(25)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,670&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,441&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest and other expense, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(10,393)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,274)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(18)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65,242)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,171)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,316)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(111)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(108)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(24)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65,276)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,240)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,592)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(111)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(108)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(24)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenues</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues consist of product revenue and research and development revenue as follows:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates, and Codex biocatalyst panels and kits. </span></div><div style="margin-top:3pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Research and development revenue include license, technology access and exclusivity fees, research services fees, milestone payments, royalties, optimization and screening fees.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues are as follows (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.756%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36,786&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,120)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(73,770)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,559&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,678)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,323&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(10,798)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(68,447)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(49)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenues typically fluctuate on a quarterly basis due to the variability in our customers' manufacturing schedules and the timing of our customers' clinical trials. In addition, we have limited internal capacity to manufacture enzymes. As a result, we are dependent upon the performance and capacity of third party manufacturers for the commercial scale manufacturing of the enzymes used in our pharmaceutical and fine chemicals business. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">51</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We accept purchase orders for deliveries covering periods from one day up to 14 months from the date on which the order is placed. However, some of our purchase orders can be revised or cancelled by the customer without penalty. Considering these industry practices and our experience, we do not believe the total of customer purchase orders outstanding (backlog) provides meaningful information that can be relied on to predict actual sales for future periods.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2024 compared to 2023</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total revenues decreased by $10.8 million in 2024 to $59.3 million, as compared to 2023. The decrease was driven by lower product revenue and lower research and development revenue as compared to the prior year.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue was $36.8 million in 2024, a decrease of 14% compared with $42.9 million in 2023. The decrease in product revenue was primarily due to one-time revenue recognition of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$8.2 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in 2023 related to Pfizer's fee previously received under the Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc., a </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$2.9 million decrease due to the early termination of an enzyme supply agreement with a customer in 2023, and the one-time recognition of a $1.3 million settlement fee in 2023 under the same enzyme supply agreement. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This decrease was partially offset with higher sales of branded pharmaceutical products in 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development revenue decreased by $4.7 million in 2024 to $22.6 million, or 17% compared with $27.2 million in 2023. The decrease was primarily due to </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$9.1 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> lower research and development fees from Nestl&#233; Health Science (&#8220;Nestl&#233;&#8221;), the one-time recognition of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0 million revenue related to a license agreement in 2023 and $2.0 million lower revenue from our master service agreements with Pfizer Inc. (&#8220;Pfizer&#8221;), $1.2 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> lower revenue from T</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">akeda Pharmaceutical Co. Ltd. under a Strategic Collaboration and License Agreement, and $4.3 million lower revenue from other legacy collaboration agreements. This decrease was offset by $6.0 million higher revenue from our licensing agreement with Roche Sequencing Solutions, Inc. (&#8220;Roche&#8221;) entered into in February 2024, recognition of $9.5 million revenue related to a license agreement with Pfizer entered into in December 2024, and $1.9 million higher revenue from existing collaboration agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total revenues decreased by $68.4 million in 2023 to $70.1 million, as compared to 2022. The decrease was driven by lower product revenue as compared to the prior year.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue was $42.9 million in 2023, a decrease of 63% compared with $116.7 million in 2022. The decrease in product revenue was primarily due to decreased sales of CDX-616 to Pfizer. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This decrease was partially offset by $8.2 million release of prior year's deferrals related to Pfizer's fee, $3.2 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">release of prior periods' product revenue deferrals due to early termination of the enzyme supply obligations to a customer and</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $1.3 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of product revenue recognized as settlement fee pursuant to the enzyme supply agreement with the same customer</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development revenue increased by $5.3 million in 2023 to $27.2 million, or 24% compared with $21.9 million in 2022, primarily due to higher revenue from a 2023 Pfizer license agreement and from Nestl&#233; Health Science under a Strategic Collaboration Agreement with Nestl&#233; (the &#8220;Nestl&#233; SCA&#8221;) and development agreement and an acquisition agreement with Nestl&#233; (the &#8220;Acquisition Agreement&#8221;), which was partially offset by lower research and development fees from existing collaboration agreements being recognized in 2023 as compared to the prior year.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Costs and Operating Expenses </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.426%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.756%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,288&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,479&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(25,224)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">46,263&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">58,885&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80,099&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,622)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(21,214)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(26)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,148&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">53,250&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">52,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,898&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,078&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,167&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,284)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(100)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">117&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">165&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,984&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,819)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(98)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,984&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total costs and operating expenses</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">117,864&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,212&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173,471&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20,348)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(35,259)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">52</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Costs of Product Revenue and Product Gross Margin</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table shows the amounts of our product revenue, cost of product revenue, product gross profit and product gross margin from our consolidated statements of operations (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:23.900%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.757%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended<br/>December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended<br/>December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36,786&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,120)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(73,770)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of product revenue</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,288&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,479&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,809&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">38,033&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(25,224)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(66)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product gross profit</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,498&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,097&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,599)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(32)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,097&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78,643&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(48,546)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(62)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product gross margin (%)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Cost of product revenue comprises both internal and third-party fixed and variable costs, including materials and supplies, labor, facilities and other overhead costs associated with our product revenue.</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%">Product gross margin is used as a performance measure to provide additional information regarding our results of operations on a consolidated basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2024 compared to 2023 </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue increased by $3.5 million in 2024 to $16.3 million, as compared to 2023. The increase was primarily due to the combination of increased sales of certain enzyme product and higher costs. Product gross margins decreased to 56% in 2024&#160;as compared to 70% in 2023, primarily due to variability in the product mix and with 2023 benefiting from product revenue recognized with </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">no related cost in 2023 related to the utilization of Pfizer&#8217;s fee and to the early termination of an enzyme supply agreement with a customer.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue decreased by $25.2 million in 2023 to $12.8 million, as compared to 2022. The decrease was primarily due to lower volu</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">me of product sales as compared to the prior year. Product gross margins increased to 70% in 2023&#160;as compared to 67% in 2022, primarily due to product revenue recognized with no related costs in 2023 related to the utilization of Pfizer's fee and early termination of an enzyme supply agreement with a customer, and was partially offset by variability in the product mix. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses&#160;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects as well as collaborative research and development activities. These costs primarily consist of (i) employee-related costs, which include salaries and other personnel-related expenses (including stock-based compensation), (ii) various allocable expenses, which include occupancy-related costs, supplies, depreciation of facilities and laboratory equipment, and (iii) external costs. Research and development expenses are expensed when incurred. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2024 compared to 2023</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses were $46.3 million in 2024 compared to $58.9 million in 2023, a decrease of $12.6 million, or 21%. This decrease was primarily due to a $4.4 million decrease from lower use of outside services related to Chemistry, Manufacturing and Controls procedures (&#8220;CMC&#8221;) and lower regulatory expense, $4.3 million decrease in costs associated with lower headcount, $3.8 million decrease from lower lease and facilities costs due to the assignment of our San Carlos facility lease during the fourth quarter of 2023, and $0.3 million in lower depreciation expenses. These were partially offset by $0.4 million in higher allocable costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022 </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses were $58.9 million in 2023 compared to $80.1 million in 2022, a decrease of $21.2 million, or 26%. This decrease was primarily due to a $10.0 million decrease in costs associated with lower headcount, $6.4 million decrease in outside services and CMC and regulatory expense, $4.1 million in lower lab supplies expense, $1.3 million in lower stock comp expense, and a $1.0 million decrease in lease costs due to the assignment of our San Carlos facility lease. These were partially offset by $1.7 million in higher allocable costs.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">53</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Selling, General and Administrative Expenses</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#160;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general and administrative expenses consist of employee-related costs, which include salaries and other personnel-related expenses (including stock-based compensation), hiring and training costs, consulting and outside services expenses (including audit and legal counsel related costs), marketing costs, building lease costs, and depreciation expenses and amortization expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2024 compared to 2023</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general and administrative expenses were $55.1 million in 2024 compared to $53.3 million in 2023, an increase of $1.9 million, or 4%. This increase was primarily due to $2.9 million in higher stock-based compensation expense, $0.9 million in higher consulting and outside services, and $0.7 million in higher legal fees. This was partially offset by a $1.9 million in lower payroll-based expenses and $0.7 million in lower allocable expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">2023 compared to 2022</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general and administrative expenses were $53.3 million in 2023 compared to $52.2 million in 2022, an increase of $1.1 million, or 2%. This increase was primarily due to $3.6 million in higher payroll-based expenses, $0.6 million in higher legal expense, $0.4 million in higher repairs and maintenance expense, and $0.3 million in higher consulting and outside services. This was partially offset by $3.2 million in lower stock-based compensation expense and $0.4 million in lower allocable expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restructuring Charges</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restructuring charges consist of employee severance and other termination benefits due to workforce reduction plans that were initiated in the prior years. There were no restructuring charges recognized for the year ended December&#160;31, 2024. Restructuring charges were $3.3 million and $3.2 million for the years ended December 31, 2023, and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Asset Impairment and Other Charges</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Asset impairment and other charges for the year ended December&#160;31, 2024 were $0.2 million related to a long-lived asset impairment charge in the second quarter of 2024. Asset impairment and other charges for the year ended December 31, 2023 were $10.0 million, consisting o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f a $</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9.2 million long-lived asset impairment charge and a $0.8 million goodwill impairment charge, all of which are non-cash charges. No asset impairment charges were recorded for the year ended December 31, 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Interest Income and Interest and Other Expense, net</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:30.917%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.535%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest income</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,670&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,172&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,441&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(502)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,731&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">190&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest and other expense, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(10,393)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,274)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,881&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(12,398)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,998)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other income (expense), net</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,723)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,102)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,565&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,379&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,667)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(618)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Interest Income</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest income decreased by $0.5 million in 2024 compared to 2023, primarily due to lower average cash balances. Interest income increased by $2.7 million in 2023 compared to 2022, primarily due to higher average interest rates on cash balances.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Interest and Other Expense, net</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest and other expense, net, decreased by $1.9 million in 2024 compared to 2023, primarily due to the higher impairment charges recognized in 2023 related to our investments in Molecular Assemblies, Inc. (&#8220;MAI&#8221;), seqWell Inc. (&#8220;seqWell&#8221;) and Arzeda Corp. (&#8220;Arzeda&#8221;), offset by $3.5 million in interest related to the long-term debt in the current year.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest and other expense, net, increased by $12.4 million in 2023 compared to 2022, primarily due to impairment of our investments in MAI, seqWell and Arzeda.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">54</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Provision for Income Taxes&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(in thousands, except percentages):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:34.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.695%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.756%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Change</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(35)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(51)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(207)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for income taxes in 2024 was primarily due to the accrual of interest and penalties on historic uncertain tax positions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for income taxes in&#160;2023 was primarily for fiscal year 2023 state income taxes and the accrual of interest and penalties on historic uncertain tax positions. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The provision for income taxes in 2022 was primarily due to the income tax withholding imposed by foreign taxing authorities on income earned in certain countries outside of the Unites Stated and remitted to the United States and the accrual of interest and penalties on historic uncertain tax positions, as well as current year state income taxes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Net Loss</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net loss for 2024 was $65.3 million, or a net loss per basic and diluted share of $0.89. This compared to a net loss of $76.2 million, or $1.12 per basic and diluted share, for 2023. The decrease in net loss was primarily related to lower operating expenses in 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net loss for 2023 was $76.2 million, or a net loss per basic and diluted share of $1.12. This compared to a net loss of $33.6 million, or $0.51 per basic and diluted share, for 2022. The increase in net loss was primarily related to lower product revenues from CDX-616 and one-time charges recognized during 2023 related to asset impairment, including impairment in our investments in non-marketable equity securities, and restructuring charges, which was partially offset by lower operating expenses in 2023.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_55"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">LIQUIDITY AND CAPITAL RESOURCES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Liquidity is the measurement of our ability to meet working capital needs and to fund capital expenditures. We have historically funded our operations primarily through cash generated from operations, stock option exercises and public and private offerings of our common stock. In addition, pursuant to our Loan Agreement with </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Innovatus, an affiliate of Innovatus Capital Partners, LLC, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we borrowed $30.0 million from Innovatus, as Lender, on February 13, 2024 and may become eligible to borrow up to an additional $10.0 million upon the achievement of certain financial milestones. The Loan Agreement provides for an aggregate principal amount of up to $40.0 million and with a</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> maturity date of February 13, 2029 (the &#8220;Innovatus Loan&#8221;). </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We actively manage our cash usage and investment of liquid cash to ensure the maintenance of sufficient funds to meet our working capital needs. Our cash and cash equivalents are held in U.S. banks.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our primary uses of capital for the foreseeable future, including the next 12 months, are for compensation and related expenses, research and development expenses including manufacturing costs, laboratory and related supplies, legal and other regulatory expenses, and general overhead costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes our cash and cash equivalents and short-term investments balances and working capital as of December&#160;31, 2024, 2023 and 2022 (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,264&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,984&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term investments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Working capital</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">75,124&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">57,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">113,828&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sources of Capital</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to our existing cash and cash equivalents, short-term investments and revenue generated through our existing operations, we are eligible to earn milestone and other contingent payments for the achievement of defined collaboration objectives under our collaboration agreements. Our ability to earn these milestone and contingent payments and the timing of achieving these milestones is primarily dependent upon the outcome of our collaborators&#8217; research and development activities and is uncertain at this time</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">55</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have historically experienced negative cash flows from operations as we continue to invest in key technology development projects and improvements to our CodeEvolver technology platform, develop and commercialize new and existing products including our ECO Synthesis manufacturing platform and expand our business development and collaboration with new customers. Our cash flows from operations will continue to be affected principally by product sales and product gross margins, sales from licensing our technology to major pharmaceutical companies, and collaborative research and development services provided to customers, as well as our headcount costs. Our primary source of cash flows from operating activities is cash receipts from our customers for purchases of products, collaborative research and development services, and licensing our technology to major pharmaceutical companies. Our largest uses of cash from operating activities are for employee-related expenditures, rent payments, inventory purchases to support our product sales and non-payroll research and development costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Loan Agreement and Term Loans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024, we entered into the Loan Agreement with Innovatus consisting of up to two tranches, of which the first tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$30.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> was disbursed upon execution of the Loan Agreement. We will be eligible to draw on the second tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$10.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> upon achievement of certain milestones including certain pre-specified revenue thresholds and subject to payment of a facility fee equal to 1.00% of the amount of such term loan. The </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Term Loan carries an interest-only period of 36 months (with the possibility to extend up to 48 months upon achievement of certain pre-specified financial milestones) and will bear interest at a floating rate of the sum of (a) the greater of (i) prime rate and (ii) 7.50%, plus (b) 3.25%. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Sales Agreements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we entered into an Equity Distribution </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement (&#8220;EDA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) with Piper Sandler &amp; Co (&#8220;PSC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), under which PSC, as our exclusive agent, at our discretion and at such times that we may determine from time to time, may sell over a three-year period from the execution of the EDA up to a maximum of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$50.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of shares of our common stock. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA, all during the first half of 2023, and we received net proceeds of $7.9 million.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> On April 24, 2024, we terminated the EDA.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 2, 2024, we entered into the Cantor Sales Agreement with Cantor, under which Cantor, at our discretion and at such times that we may determine from time to time, may sell up to a maximum of $75.0 million of shares of our common stock. Under the terms of the Cantor Sales Agreement, Cantor may sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act. On May 2, 2024, we filed a registration statement on Form S-3 registering the offer and sale of these shares under the Securities Act which became effective on May 14, 2024. We will pay a commission</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of up to 3.0% </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of gross sales proceeds of any common stock sold under the Cantor Sales Agreement. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10,440,000</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of our common stock were issued and sold pursuant to the Cantor Sales Agreement and we received gross proceeds of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$31.3 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, or </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$29.7 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in net proceeds after Cantor&#8217;s commissions and direct offering expenses of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.6 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, $43.7 million of shares remained available for sale under the Cantor Sales Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales of our common stock under the Cantor Sales Agreement could be subject to business, economic or competitive unce</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">rtainties and contingencies, many of which may be beyond our control, and which could cause actual results from the sale of our common stock to differ materially from expectations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Liquidity</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that our existing cash and cash equivalents, combined with our future expectations for product revenues, research and development revenue, and expense management will provide adequate funds for ongoing operations, planned capital expenditures and working capital requirement</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s for at least the next 12 months. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have based this estimate on assumptions that may prove to be wrong, and we could utilize our capital resources sooner than we expect. </span></div><div style="text-indent:18pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">56</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">However, we may need additional capital if our current plans and assumptions change. In addition, we may choose to seek sources of capital, which may arise through a combination of equity offerings, debt financings, other third-party funding and other collaborations, strategic alliances and partnering arrangements, even if we believe we have generated sufficient cash flows to support our operating needs. Our need for additional capital will depend on many factors, including the financial success of our business, the spending required to develop and commercialize new and existing products including our ECO Synthesis manufacturing platform, the effect of any acquisitions of other businesses, technologies or facilities that we may make or develop in the future, our spending on new market opportunities, and the potential costs for the filing, prosecution, enforcement and defense of patent claims, if necessary. If our capital resources are insufficient to meet our capital requirements, and we are unable to enter into or maintain collaborations with partners that are able or willing to fund our development efforts or commercialize any products that we develop or enable, we will have to raise additional funds to continue the development of our technology and products and complete the commercialization of products, if any, resulting from our technologies. If future financings involve the issuance of equity securities, our existing stockholders would suffer dilution. In addition, under our Loan Agreement, we are subject to restrictive covenants that limit our ability to conduct our business and could be subject to additional covenants to the extent we seek other debt financing in the future. We may not be able to raise sufficient additional funds on terms that are favorable to us, if at all. If we fail to raise sufficient funds and fail to generate sufficient revenues to achieve planned gross margins and to control operating costs, our ability to fund our operations, take advantage of strategic opportunities, develop products or technologies, or otherwise respond to competitive pressures could be significantly limited. If this happens, we may be forced to delay or terminate development of new products or services, such as our ECO Synthesis manufacturing platform, or the commercialization of products resulting from our technologies, curtail or cease operations or obtain funds through collaborative and licensing arrangements that may require us to relinquish commercial rights, or grant licenses on terms that are not favorable to us. If adequate funds are not available, we will not be able to successfully execute our business plan or continue our business.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Cash Flows</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a summary of cash flows for the years ended December&#160;31, 2024, 2023 and 2022 (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.426%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) operating activities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(49,410)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(52,638)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,284&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash used in investing activities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(56,980)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,858)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(13,578)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) financing activities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">60,522&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,167&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(575)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net decrease in cash, cash equivalents and restricted cash</span></div></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(45,868)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(49,329)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,869)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Flows from Operating Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $3.2 million decrease in net cash used in operating activities in 2024 as compared to 2023 was primarily due to the net effect of decreases in cash paid from operating expenses, primarily driven by the restructuring of our business in 2023 which included the assignment of our previous San Carlos facility lease in the fourth quarter of 2023, and changes in operating assets and liabilities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $63.9 million decrease in net cash provided by operating activities in 2023 as compared to 2022 was primarily due to the net effect of decreases in cash received from our customers due to lower revenue in 2023 and with 2022 benefiting from the receipt of a $25.9 million fee from Pfizer that is creditable against future orders, partially offset by decreases in cash paid for cost of revenues and operating expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Flows from Investing Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $52.1 million increase in net cash used in investing activities in 2024 as compared to 2023 was primarily due to higher cash utilized for purchases of short-term investments, partially offset by lower purchases of property and equipment in the current year. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $8.7 million decrease in net cash used in investing activities in 2023 as compared to 2022 was primarily due to higher cash utilized for additional investments in equity securities and purchases of property and equipment in the prior year. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">57</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash Flows from Financing Activities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $52.4 million increase in net cash provided by financing activities in 2024 as compared to 2023 was primarily due to proceeds from the Innovatus Loan in February 2024 and proceeds from issuance of common stock under the Cantor Sales Agreement in the third quarter of 2024, partially offset by proceeds from issuance of common stock under the EDA during the first half of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The $8.7 million increase in net cash provided by financing activities in 2023 as compared to 2022 was primarily due to proceeds from issuance of common stock under the EDA and lower cash paid on taxes related to net share settlement of equity awards.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_58"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OFF-BALANCE SHEET ARRANGEMENTS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, we had no off-balance sheet arrangements as defined in Item&#160;303 of Regulation S-K as promulgated by the SEC.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_61"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CRITICAL ACCOUNTING POLICIES AND ESTIMATES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management&#8217;s discussion and analysis of our financial condition and results of operations are based upon our consolidated financial statements. The consolidated financial statements have been prepared in conformity with generally accepted accounting principles in the United States and include our accounts and the accounts of our wholly owned subsidiaries. The preparation of our consolidated financial statements requires our management to make estimates, assumptions, and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the applicable periods. Management bases its estimates, assumptions and judgments on historical experience and on various other factors that are believed to be reasonable under the circumstances. Different assumptions and judgments would change the estimates used in the preparation of our consolidated financial statements, which, in turn, could change the results from those reported. Our management evaluates its estimates, assumptions and judgments on an ongoing basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The critical accounting policies requiring estimates, assumptions, and judgments that we believe have the most significant impact on our consolidated financial statements are described below.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. Some of our contracts with customers contain multiple products and services. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">58</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available under the Accounting Standards Codification (&#8220;ASC&#8221;) 606, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimate of future goods to be ordered by customers change. Estimating expected consideration to be received under the alternative approach involves significant judgment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue recognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. If we determine that the customer cannot benefit from the license without our services, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct, we would recognize an allocable portion of the transaction price when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver platform technology transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have an agreement under which we have granted a functional license to some elements of our biocatalyst technology. We will recognize revenues for the functional license at a point in time when the control of the license transfers to the customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us for which the license is the predominant item to which the royalty relates, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">59</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investment in Non-Marketable Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in interest and other expense, net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in estimated fair value of the debt or equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with the future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recent Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See Note 2, &#8220;Basis of Presentation and Summary of</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant Accounting Policies&#8221; in the Notes to the Consolidated Financial Statements set forth in Item 8 of this Annual Report on Form 10-K for a full description of recent accounting standards, including the respective dates of adoption and effects on our consolidated financial position, results of operations and cash flows.</span></div><div style="margin-top:9pt;text-align:justify;text-indent:18pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">60</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_64"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 7A. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Interest Rate Sensitivity</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our unrestricted cash, cash equivalents, and short-term investments in marketable securities tot</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">al</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $73.5 million as of December&#160;31, 2024. We primarily invest these amounts in money market funds and short-term debt which are held for working capital purposes. We do not enter into investments for trading or speculative purposes. As of December&#160;31, 2024, the effect of a hypothetical 10% decrease in market interest rates would have an $0.3 million impact on a potential loss in future interest income and cash flows.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are also exposed to market risk from changes in interest rates as a result of our indebtedness under the Innovatus Loan. At December&#160;31, 2024, we had $30.0 million principal amount outstanding under the Innovatus Loan. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The floating per annum interest rate of the Innovatus Loan is equal to </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">the sum of (a) the greater of (i) prime rate published in the Money Rates section of the Wall Street Journal and (ii) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.50%</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, plus (b) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.25%; provided that, at the election of the Company, up to 2.00% of such rate shall be payable in-kind until the third anniversary of the closing date. An immediate 10% change in the prime interest rate would result in a $0.2 million impact on our results of operations over the next twelve months from December&#160;31, 2024. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Foreign Currency Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our results of operations and cash flows are subject to fluctuations due to changes in foreign currency exchange rates. In periods when the United States dollar (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">USD&#8221;) declines in value as compared to the foreign currencies in which we incur expenses, our foreign-currency based expenses increase when translated into USD. Although substantially all of our sales are denominated in USD, future fluctuations in the value of the USD may affect the price competitiveness of our products outside the United States. Our most significant foreign currency exposure is due to non-functional currency denominated monetary assets, primarily currencies denominated in other than their functional currency. These non-functional currency denominated monetary assets are subject to re-measurement which may create fluctuations in interest and other expense, net, a component in our consolidated statement of operations and in the fair value of the assets in the consolidated balance sheets. As of December&#160;31, 2024, the effect of a hypothetical 10% unfavorable change in exchange rates on currencies denominated in other than their functional currency would result in a potential loss in future earnings in our consolidated statement of operations and a reduction in the fair value of the assets of approximately $40 thousand.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We own investments in non-marketable equity securities without readily determinable fair values. We may value these equity securities based on significant recent arms-length equity transactions with sophisticated non-strategic unrelated investors, providing the terms of these security transactions are substantially similar to the security transactions terms between the investors and us. The impact of the difference in transaction terms on the market value of the portfolio company may be difficult or impossible to quantify.</span></div><div style="margin-top:9pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">61</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_67"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 8. FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="margin-bottom:9pt;margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INDEX TO CONSOLIDATED FINANCIAL STATEMENTS</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:93.783%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.017%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_70">Reports of Independent Registered Public Accounting Firm</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:AuditorName" id="f-51">KPMG LLP</ix:nonNumeric></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:AuditorLocation" id="f-52">San Francisco, CA</ix:nonNumeric></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">; PCAOB ID: <ix:nonNumeric contextRef="c-1" name="dei:AuditorFirmId" id="f-53">185</ix:nonNumeric>)</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_70">63</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_70">Reports of Independent Registered Public Accounting Firm</a></span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> (</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">BDO USA, P.C.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">; </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">San Francisco, CA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">; PCAOB ID: 243)</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_549755815620">65</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_73">Consolidated Balance Sheets</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_73">66</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_76">Consolidated Statements of Operations</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_76">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span id="i1aa2b64ed8fe425dab4cc20df77cabc4_3-0-1-1-240437"></span><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_1645">Consolidated Statements of Comprehensive Loss</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_1645">68</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_79">Consolidated Statements of Stockholders' Equity</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_79">69</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_82">Consolidated Statements of Cash Flows</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_82">70</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_85">Notes to Consolidated Financial Statements</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i54de1f9b7c534b2395538b2f9d079d1a_85">71</a></span></div></td></tr></table></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">62</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_70"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Report of Independent Registered Public Accounting Firm</span></div><div style="margin-top:9pt;text-align:center"><span><br/></span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To the Stockholders and Board of Directors</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Codexis, Inc.:</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Opinion on the Consolidated Financial Statements</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the accompanying consolidated balance sheet of Codexis, Inc. and subsidiaries (the Company) as of December&#160;31, 2024, the related consolidated statement of operations, comprehensive loss, stockholders&#8217; equity, and cash flows for the period ended December&#160;31, 2024, and the related notes (collectively, the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of December&#160;31, 2024, and the results of its operations and its cash flows for the period ended December&#160;31, 2024, in conformity with U.S. generally accepted accounting principles.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Basis for Opinion</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These consolidated financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on these consolidated financial statements based on our audit. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (PCAOB) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting. As part of our audit, we are required to obtain an understanding of internal control over financial reporting but not for the purpose of expressing an opinion on the effectiveness of the Company&#8217;s internal control over financial reporting. Accordingly, we express no such opinion.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audit also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audit provides a reasonable basis for our opinion.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Critical Audit Matter</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of a critical audit matter does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.</span></div><div style="margin-top:9pt;padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Sufficiency of audit evidence over revenue from contracted customers</span></div><div style="margin-top:9pt;padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As discussed in Note 3 to the consolidated financial statements, the Company recorded $59.3 million of total revenues for the year-ended December&#160;31, 2024 comprised of $36.8 million of product revenue and $22.6 million of research and development revenue. As discussed in Note 2, the Company enters into contracts with customers, some of which contain multiple products and services. Further, the majority of the Company&#8217;s collaborative contracts, including research and development agreements, contain multiple revenue streams. In determining the appropriate amount of revenue to be recognized for product revenue and research and development revenue, the Company performs the following steps: (i) identification of the promised goods or services in the contract; (ii) determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii) measurement of the transaction price, including the constraint on variable consideration; (iv) allocation of the transaction price to the performance obligations based on estimated selling prices; and (v) recognition of revenue when, or as, the Company satisfies each performance obligation.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">63</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We identified the evaluation of the sufficiency of audit evidence over revenue as a critical audit matter. Evaluating the sufficiency of audit evidence obtained required subjective auditor judgment due to the volume of revenue streams and disparate nature of contracts with customers, which involved determining the contracts and related revenue transactions to test and evaluating the recognition and measurement of revenue with respect to certain contracts with considerations around multiple elements, material rights, or timing of recognition.</span></div><div style="margin-top:9pt;padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following are the primary procedures we performed to address this critical audit matter. We applied auditor judgment to determine the nature and extent of procedures to be performed over revenue, including the determination of the types of contracts, transactions and measurement elements to test such as considerations of certain contracts with multiple elements, material rights, and timing of revenue recognition. We read a selection of contracts and evaluated the Company&#8217;s identification and assessment of the contract terms impacting the recognition and measurement of revenue. For certain transactions, we inspected the terms of the contract, agreed such terms to underlying documentation, such as external and internal evidence as applicable, recalculated revenue based on the underlying documentation, and compared it to the amount of revenue recognized. We evaluated the sufficiency of audit evidence obtained by assessing the results of procedures performed, including the appropriateness of the nature and extent of such evidence.</span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ KPMG LLP</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have served as the Company&#8217;s auditor since 2024.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">San Francisco, California</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;27, 2025</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">64</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_549755815620"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Report of Independent Registered Public Accounting Firm</span></div><div style="margin-top:9pt;text-align:justify"><span><br/></span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stockholders and Board of Directors</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Codexis, Inc.</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Redwood City, California</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Opinion on the Consolidated Financial Statements</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the accompanying consolidated balance sheet of Codexis, Inc. (the &#8220;Company&#8221;) as of December 31, 2023, the related consolidated statement of operations, stockholders&#8217; equity, and cash flows for each of the two years in the period ended December 31, 2023, and the related notes (collectively referred to as the &#8220;consolidated financial statements&#8221;). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company at December 31, 2023, and the results of its operations and its cash flows for each of the two years in the period ended December 31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in conformity with accounting principles generally accepted in the United States of America.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis for Opinion</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These consolidated financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on the Company&#8217;s consolidated financial statements based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (PCAOB) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ BDO USA, P.C.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We served as the Company's auditor from 2013 to 2024.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">San Francisco, California</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February 28, 2024</span></div><div style="margin-top:9pt;text-align:justify"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">65</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_73"></div><hr style="page-break-after:always"/><div style="min-height:18pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:3pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consolidated Balance Sheets</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands, Except Per Share Amounts)</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:72.761%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.675%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.387%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.677%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Assets</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current assets:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-54">19,264</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-55">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restricted cash, current</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestrictedCash" scale="3" id="f-56">503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestrictedCash" scale="3" id="f-57">519</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-58">54,194</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-59">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Financial assets:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsReceivableGrossCurrent" format="ixt:num-dot-decimal" scale="3" id="f-60">11,920</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsReceivableGrossCurrent" format="ixt:num-dot-decimal" scale="3" id="f-61">10,036</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" format="ixt:num-dot-decimal" scale="3" id="f-62">4,375</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" scale="3" id="f-63">815</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-64">2,751</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-65">9,142</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total financial assets</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NotesReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-66">19,046</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NotesReceivableGross" format="ixt:num-dot-decimal" scale="3" id="f-67">19,993</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 49pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: allowances</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-68">162</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllowanceForNotesAndLoansReceivableCurrent" scale="3" id="f-69">65</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total financial assets, net</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsNotesAndLoansReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-70">18,884</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsNotesAndLoansReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-71">19,928</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-72">1,799</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-73">2,685</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-74">4,128</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-75">5,218</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-76">98,772</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-77">93,466</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restricted cash</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalentsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-78">1,062</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalentsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-79">1,062</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Investment in non-marketable equity securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InvestmentsAndOtherNoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-80">2,798</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InvestmentsAndOtherNoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-81">9,700</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-82">28,700</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-83">13,137</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-84">14,197</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-85">15,487</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-86">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-87">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other non-current assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-88">1,019</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-89">1,246</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total assets</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-90">149,011</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-91">136,561</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Liabilities and Stockholders&#8217; Equity</span></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-92">2,838</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-93">5,947</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-94">11,410</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EmployeeRelatedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-95">11,246</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other accrued liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-96">6,223</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-97">4,735</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-98">2,827</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-99">3,781</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" id="f-100">350</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-101">10,121</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current liabilities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-102">23,648</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-103">35,830</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue, net of current portion</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" scale="3" id="f-104">100</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" scale="3" id="f-105">640</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-106">28,163</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-107">12,243</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term debt</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebtNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-108">28,905</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:LongTermDebtNoncurrent" format="ixt:fixed-zero" scale="3" id="f-109">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other long-term liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-110">1,268</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-111">1,233</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-112">82,084</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-113">49,946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commitments and contingencies (Note 13)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-4" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-114"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-5" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-115"></ix:nonFraction></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stockholders&#8217; equity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Preferred stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-116"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-117">0.0001</ix:nonFraction></ix:nonFraction> par value per share; <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-118"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-119">5,000</ix:nonFraction></ix:nonFraction> shares authorized, <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt:fixed-zero" scale="3" id="f-120"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt:fixed-zero" scale="3" id="f-121"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt:fixed-zero" scale="3" id="f-122"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt:fixed-zero" scale="3" id="f-123">none</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> issued and outstanding</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PreferredStockValue" format="ixt:fixed-zero" scale="3" id="f-124">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PreferredStockValue" format="ixt:fixed-zero" scale="3" id="f-125">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-126"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-127">0.0001</ix:nonFraction></ix:nonFraction> par value per share; <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-128"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-129">200,000</ix:nonFraction></ix:nonFraction> shares authorized; <ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-130"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="INF" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-131">81,850</ix:nonFraction></ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-132"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-133">69,905</ix:nonFraction></ix:nonFraction> shares issued and outstanding at December&#160;31, 2024 and December&#160;31, 2023, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CommonStockValue" scale="3" id="f-134">8</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CommonStockValue" scale="3" id="f-135">7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additional paid-in capital</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AdditionalPaidInCapital" format="ixt:num-dot-decimal" scale="3" id="f-136">629,673</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AdditionalPaidInCapital" format="ixt:num-dot-decimal" scale="3" id="f-137">584,138</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated other comprehensive income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" id="f-138">52</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:fixed-zero" scale="3" id="f-139">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated deficit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-140">562,806</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-141">497,530</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total stockholders&#8217; equity</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-142">66,927</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-143">86,615</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities and stockholders&#8217; equity</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-144">149,011</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-145">136,561</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="padding-left:36pt;padding-right:36pt;text-align:center;text-indent:4.5pt"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="height:27pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">66</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_76"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.<br/>Consolidated Statements of Operations</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands, Except Per Share Amounts)</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Revenues:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Product revenue </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">($<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-146">0</ix:nonFraction>,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"> $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-147">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-148">514</ix:nonFraction> from a related party)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-149">36,786</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-150">42,906</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-151">116,676</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development revenue ($<ix:nonFraction unitRef="usd" contextRef="c-12" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-152">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="3" id="f-153">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-14" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-154">1,245</ix:nonFraction> from a related party)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-155">22,559</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-156">27,237</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-157">21,914</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total revenues</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-158">59,345</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-159">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-160">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Costs and operating expenses:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of product revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-161">16,288</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-162">12,809</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-163">38,033</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-164">46,263</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-165">58,885</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-166">80,099</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-167">55,148</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-168">53,250</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-169">52,172</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-170">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-171">3,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-172">3,167</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AssetImpairmentCharges" scale="3" id="f-173">165</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="3" id="f-174">9,984</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:AssetImpairmentCharges" format="ixt:fixed-zero" scale="3" id="f-175">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total costs and operating expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostsAndExpenses" format="ixt:num-dot-decimal" scale="3" id="f-176">117,864</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:CostsAndExpenses" format="ixt:num-dot-decimal" scale="3" id="f-177">138,212</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:CostsAndExpenses" format="ixt:num-dot-decimal" scale="3" id="f-178">173,471</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss from operations</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-179">58,519</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-180">68,069</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-181">34,881</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Interest income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InvestmentIncomeInterest" format="ixt:num-dot-decimal" scale="3" id="f-182">3,670</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:InvestmentIncomeInterest" format="ixt:num-dot-decimal" scale="3" id="f-183">4,172</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:InvestmentIncomeInterest" format="ixt:num-dot-decimal" scale="3" id="f-184">1,441</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Interest and other expense, net ($<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-185">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="0" id="f-186">0</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-187">208</ix:nonFraction> from a related party)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" format="ixt:num-dot-decimal" scale="3" id="f-188">10,393</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" format="ixt:num-dot-decimal" scale="3" id="f-189">12,274</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-190">124</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss before income taxes</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-191">65,242</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-192">76,171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-193">33,316</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-194">34</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-195">69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-196">276</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-197">65,276</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-198">76,240</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-199">33,592</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss per share, basic and diluted</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-200"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-201">0.89</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-18" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-202"><ix:nonFraction unitRef="usdPerShare" contextRef="c-18" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-203">1.12</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usdPerShare" contextRef="c-19" decimals="2" sign="-" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-204"><ix:nonFraction unitRef="usdPerShare" contextRef="c-19" decimals="2" sign="-" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-205">0.51</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted average common stock shares used in computing net loss per share, basic and diluted</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-206"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-207">73,408</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-208"><ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-209">68,131</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-210"><ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-211">65,344</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="height:42.7pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">67</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_1645"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consolidated Statements of Comprehensive Loss</span></div><div style="margin-bottom:8pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands)</span></div><div style="margin-bottom:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.514%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.642%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-212">65,276</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-213">76,240</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-214">33,592</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other comprehensive gain:</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:24pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Unrealized gain on available-for-sale short-term investments, net of tax</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" scale="3" id="f-215">52</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:fixed-zero" scale="3" id="f-216">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:fixed-zero" scale="3" id="f-217">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Comprehensive loss</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-218">65,224</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-219">76,240</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-220">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">68</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_79"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.<br/>Consolidated Statements of Stockholders&#8217; Equity</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands)</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:31.063%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.671%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.572%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.605%"/><td style="width:0.1%"/></tr><tr style="height:27pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common Stock</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Additional<br/>Paid-in<br/>Capital</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated<br/>Other<br/>Comprehensive<br/>Income (Loss)</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated<br/>Deficit</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total<br/>Stockholders&#8217;<br/>Equity&#160;</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Shares</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2021</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-23" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-221">65,109</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-222">6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-223">552,083</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:fixed-zero" scale="3" id="f-224">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-26" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-225">387,698</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-226">164,391</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock upon exercise of stock options</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-28" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-227">410</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-29" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-228">955</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-229">955</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock upon release of stock awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-28" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesOther" scale="3" id="f-230">373</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-29" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-231">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-232">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-28" decimals="-3" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="3" id="f-233">81</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-29" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-234">1,488</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-235">1,488</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net Loss</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-30" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-236">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-237">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-31" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-238">65,811</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-31" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-239">6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-240">566,081</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:fixed-zero" scale="3" id="f-241">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-34" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-242">421,290</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-243">144,797</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock upon exercise of stock options</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-36" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-244">283</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-245">559</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-246">559</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock upon release of stock awards</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-36" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesOther" scale="3" id="f-247">796</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock in connection with an equity sales agreement, net of issuance costs of $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:PaymentsOfStockIssuanceCosts" scale="3" id="f-248">721</ix:nonFraction></span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-36" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-249">3,080</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-36" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" scale="3" id="f-250">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-251">7,931</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-252">7,932</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-253">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-254">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-36" decimals="-3" name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" scale="3" id="f-255">65</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="f-256">404</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="f-257">404</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net Loss</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-38" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-258">76,240</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-259">76,240</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-39" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-260">69,905</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-261">7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-40" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-262">584,138</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-41" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:fixed-zero" scale="3" id="f-263">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-42" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-264">497,530</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-265">86,615</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock upon exercise of stock options</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-43" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-266">399</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-267">1,291</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-268">1,291</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock upon release of stock awards</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-43" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesOther" scale="3" id="f-269">842</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock warrants in connection with debt issuance</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued" scale="3" id="f-270">859</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued" scale="3" id="f-271">859</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock under employee stock purchase plan</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-43" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" scale="3" id="f-272">264</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" scale="3" id="f-273">563</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" scale="3" id="f-274">563</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Issuance of common stock in connection with an equity sales agreement, net of issuance costs of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsOfStockIssuanceCosts" format="ixt:num-dot-decimal" scale="3" id="f-275">1,584</ix:nonFraction></span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-43" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-276">10,440</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-43" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" scale="3" id="f-277">1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-278">29,735</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueNewIssues" format="ixt:num-dot-decimal" scale="3" id="f-279">29,736</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-44" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-280">13,087</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-281">13,087</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net Loss</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-45" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-282">65,276</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-283">65,276</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other comprehensive loss</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-46" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="f-284">52</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" id="f-285">52</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-47" decimals="-3" name="us-gaap:SharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-286">81,850</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-47" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-287">8</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-48" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-288">629,673</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-49" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-289">52</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-50" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-290">562,806</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-291">66,927</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;padding-left:7.87pt;padding-right:7.87pt;text-align:center;text-indent:-9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements </span></div><div style="text-align:center"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">69</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_82"></div><hr style="page-break-after:always"/><div style="min-height:25.2pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Consolidated Statements of Cash Flows</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(In Thousands)</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.514%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.642%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Operating activities:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net loss</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-292">65,276</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-293">76,240</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-294">33,592</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Adjustments to reconcile net loss to net cash provided by (used in) operating activities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-295">4,946</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-296">5,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-297">5,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Reduction in the carrying amount of right-of-use assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-298">3,184</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-299">4,405</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-300">4,849</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-301">13,087</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-302">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-303">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Provision (recovery) for credit losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-304">97</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-305">65</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-306">4</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Asset impairment and other charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AssetImpairmentCharges" scale="3" id="f-307">165</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="3" id="f-308">9,984</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:AssetImpairmentCharges" format="ixt:fixed-zero" scale="3" id="f-309">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Impairment of investment in non-marketable securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="3" id="f-310">6,902</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="3" id="f-311">12,215</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:fixed-zero" scale="3" id="f-312">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Equity securities earned from research and development activities ($<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:OtherNoncashIncome" scale="3" id="f-313">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:OtherNoncashIncome" scale="3" id="f-314">0</ix:nonFraction>, and ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:num-dot-decimal" scale="3" id="f-315">1,245</ix:nonFraction>) from a related party)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:fixed-zero" scale="3" id="f-316">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OtherNoncashIncome" scale="3" id="f-317">213</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:OtherNoncashIncome" format="ixt:num-dot-decimal" scale="3" id="f-318">1,245</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Unrealized gain on non-marketable securities ($<ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-319">0</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-320">0</ix:nonFraction>, and ($<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" sign="-" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-321">208</ix:nonFraction>) from a related party)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" format="ixt:fixed-zero" scale="3" id="f-322">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" format="ixt:fixed-zero" scale="3" id="f-323">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss" scale="3" id="f-324">208</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Non-cash interest expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AmortizationOfFinancingCosts" scale="3" id="f-325">885</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:AmortizationOfFinancingCosts" format="ixt:fixed-zero" scale="3" id="f-326">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:AmortizationOfFinancingCosts" format="ixt:fixed-zero" scale="3" id="f-327">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Amortization of discount on short-term investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cdxs:AmortizationOfDiscountOnShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-328">1,380</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="cdxs:AmortizationOfDiscountOnShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-329">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="cdxs:AmortizationOfDiscountOnShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-330">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Other non-cash items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" scale="3" id="f-331">4</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" scale="3" id="f-332">4</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:OtherOperatingActivitiesCashFlowStatement" scale="3" id="f-333">29</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Changes in operating assets and liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Financial assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInFinanceReceivables" format="ixt:num-dot-decimal" scale="3" id="f-334">1,252</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInFinanceReceivables" format="ixt:num-dot-decimal" scale="3" id="f-335">20,247</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncreaseDecreaseInFinanceReceivables" format="ixt:num-dot-decimal" scale="3" id="f-336">3,225</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="f-337">886</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="f-338">656</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" scale="3" id="f-339">869</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Prepaid expenses and other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="f-340">893</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="f-341">865</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" id="f-342">181</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-343">2,567</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-344">2,287</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" id="f-345">207</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Accrued compensation and other accrued liabilities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-346">1,982</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-347">14,041</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-348">5,983</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Other long-term liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-349">4,151</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-350">5,341</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-351">5,223</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 31pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Deferred revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-352">10,311</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-353">19,848</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-354">24,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net cash provided by (used in) operating activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-355">49,410</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-356">52,638</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-357">11,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Investing activities:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Purchase of property and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-358">4,305</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-359">4,418</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-360">8,307</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from sale of property and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="f-361">87</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="f-362">751</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" id="f-363">29</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Purchases of short-term investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-364">90,235</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:PaymentsToAcquireShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-365">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:PaymentsToAcquireShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-366">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from maturity of short-term investments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-367">35,500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" format="ixt:fixed-zero" scale="3" id="f-368">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" format="ixt:fixed-zero" scale="3" id="f-369">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from sale of short-term investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromSaleOfShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-370">1,973</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromSaleOfShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-371">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromSaleOfShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-372">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Investment in non-marketable securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:fixed-zero" scale="3" id="f-373">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="3" id="f-374">1,191</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:PaymentsToAcquireOtherInvestments" format="ixt:num-dot-decimal" scale="3" id="f-375">5,300</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net cash used in investing activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-376">56,980</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-377">4,858</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-378">13,578</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Financing activities:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from exercises of stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-379">1,384</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="f-380">422</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" scale="3" id="f-381">955</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from issuance of stock under employee stock purchase plan</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromStockPlans" scale="3" id="f-382">646</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromStockPlans" format="ixt:fixed-zero" scale="3" id="f-383">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromStockPlans" format="ixt:fixed-zero" scale="3" id="f-384">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from issuance of common stock in connection with equity sales agreements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-385">31,319</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-386">8,652</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfCommonStock" format="ixt:fixed-zero" scale="3" id="f-387">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Costs incurred in connection with equity sales agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:CostsIncurredInConnectionWithEquitySalesAgreements" format="ixt:num-dot-decimal" scale="3" id="f-388">1,706</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="cdxs:CostsIncurredInConnectionWithEquitySalesAgreements" scale="3" id="f-389">503</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="cdxs:CostsIncurredInConnectionWithEquitySalesAgreements" scale="3" id="f-390">42</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Proceeds from long-term debt</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfLongTermDebt" format="ixt:num-dot-decimal" scale="3" id="f-391">29,521</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfLongTermDebt" format="ixt:fixed-zero" scale="3" id="f-392">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfLongTermDebt" format="ixt:fixed-zero" scale="3" id="f-393">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Payment of debt issuance costs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" id="f-394">642</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:PaymentsOfDebtIssuanceCosts" format="ixt:fixed-zero" scale="3" id="f-395">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:PaymentsOfDebtIssuanceCosts" format="ixt:fixed-zero" scale="3" id="f-396">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Taxes paid related to net share settlement of equity awards</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:fixed-zero" scale="3" id="f-397">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" id="f-398">404</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-399">1,488</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net cash provided by (used in) financing activities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-400">60,522</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-401">8,167</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" id="f-402">575</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Net decrease in cash, cash equivalents and restricted cash</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-403">45,868</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-404">49,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-405">2,869</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Cash, cash equivalents and restricted cash at the beginning of the year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-406">66,697</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-407">116,026</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-408">118,895</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Cash, cash equivalents and restricted cash at the end of the year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-409">20,829</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-410">66,697</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-411">116,026</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.514%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.642%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Supplemental disclosure of cash flow information:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Interest paid</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InterestPaidNet" format="ixt:num-dot-decimal" scale="3" id="f-412">2,566</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:InterestPaidNet" scale="3" id="f-413">44</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:InterestPaidNet" scale="3" id="f-414">34</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Income taxes</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="f-415">17</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="f-416">194</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" scale="3" id="f-417">100</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:700;line-height:100%">Supplemental non-cash investing and financing activities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">Capital expenditures incurred but not yet paid</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" scale="3" id="f-418">566</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" format="ixt:num-dot-decimal" scale="3" id="f-419">1,068</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" scale="3" id="f-420">897</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides a reconciliation of cash, cash equivalents and restricted cash reported within the consolidated balance sheets to the total of the same such amounts shown above (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-421">19,264</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-422">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-423">113,984</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restricted cash, current and non-current </span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-424">1,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-425">1,581</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:RestrictedCashAndCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-426">2,042</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total cash, cash equivalents and restricted cash at the end of the period</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-427">20,829</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-428">66,697</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-429">116,026</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This table excludes short-term investments of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:ShortTermInvestments" scale="6" id="f-430">54.2</ix:nonFraction> million as of December 31, 2024. Total cash, cash equivalents, and short-term investments as of December 31, 2024 were $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" scale="6" id="f-431">73.5</ix:nonFraction> million.</span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:120%">See accompanying notes to consolidated financial statements</span></div><div style="height:40.5pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">70</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_85"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Codexis, Inc.</span></div><div style="margin-top:5pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Notes to Consolidated Financial Statements</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_88"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 1. <ix:nonNumeric contextRef="c-1" name="us-gaap:NatureOfOperations" id="f-432" continuedAt="f-432-1" escape="true">Description of Business </ix:nonNumeric></span></div><ix:continuation id="f-432-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In these notes to the consolidated financial statements, the &#8220;Company,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;we,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;us,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and &#8220;our</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> refers to Codexis, Inc. and its subsidiaries on a consolidated basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins leveraging our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">directed evolution technology platform. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as <ix:nonFraction unitRef="segment" contextRef="c-18" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-433">two</ix:nonFraction> business segments, Performance Enzymes and Novel Biotherapeutics. During the third and fourth quarters of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our Chief Executive Officer (&#8220;CEO&#8221;), our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocates resources based on the consolidated results of operations. We believe that these changes better align internal resources to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-434">one</ix:nonFraction> reportable segment since the fourth quarter of 2023. Comparative prior period disclosures that reflected the previous <ix:nonFraction unitRef="segment" contextRef="c-18" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-435">two</ix:nonFraction> segments' information have been revised to conform to this change in our reportable segment.</span></div></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_91"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 2. <ix:nonNumeric contextRef="c-1" name="us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" id="f-436" continuedAt="f-436-1" escape="true">Basis of Presentation and Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="f-436-1" continuedAt="f-436-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" id="f-437" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) and the applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:UseOfEstimates" id="f-438" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="f-439" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Foreign Currency Translation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="f-440" continuedAt="f-440-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. Some of our contracts with customers contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. </span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">71</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-440-1" continuedAt="f-440-2"><ix:continuation id="f-436-2" continuedAt="f-436-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a description of principal activities from which we generate revenue:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer which generally aligns with shipping terms, or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#8217;s use. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">72</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-440-2" continuedAt="f-440-3"><ix:continuation id="f-436-3" continuedAt="f-436-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Practical Expedients, Elections, and Exemptions</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to treat shipping and handling activities as fulfillment costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to record revenue net of sales and other similar taxes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Assets </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">73</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-436-4" continuedAt="f-436-5"><ix:continuation id="f-440-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Costs</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:ShippingAndDistributionCost" format="ixt:num-dot-decimal" scale="6" id="f-441">1.0</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="cdxs:ShippingAndDistributionCost" format="ixt:num-dot-decimal" scale="6" id="f-442">1.0</ix:nonFraction>&#160;million, and $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="cdxs:ShippingAndDistributionCost" format="ixt:num-dot-decimal" scale="6" id="f-443">3.0</ix:nonFraction>&#160;million for the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Research and Development Services</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ResearchAndDevelopmentExpensePolicy" id="f-444" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="f-445" continuedAt="f-445-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Advertising</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-445-1">Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations.</ix:continuation> Advertising costs were <ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:AdvertisingExpense" format="ixt-sec:numwordsen" scale="6" id="f-446">nil</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:AdvertisingExpense" scale="6" id="f-447">0.3</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:AdvertisingExpense" scale="6" id="f-448">0.3</ix:nonFraction> million for each of the years ended December 31, 2024, 2023 and 2022, respectively.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="f-449" continuedAt="f-449-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restricted Stock Units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSUs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), Restricted Stock Awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs&#8221;) and performance-contingent restricted stock units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PSUs&#8221;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PBOs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">74</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-436-5" continuedAt="f-436-6"><ix:continuation id="f-449-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" id="f-450" continuedAt="f-450-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash and Cash Equivalents</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-450-1">We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" id="f-451" continuedAt="f-451-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Cash</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-451-1" continuedAt="f-451-2">We are currently in the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations.</ix:continuation> This balance is recorded as current restricted cash on the consolidated balance sheets of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:RestrictedCashCurrent" scale="6" id="f-452"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:RestrictedCashCurrent" scale="6" id="f-453">0.5</ix:nonFraction></ix:nonFraction> million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2024 and 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-451-2">Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$<ix:nonFraction unitRef="usd" contextRef="c-51" decimals="-5" name="us-gaap:RestrictedCashNoncurrent" scale="6" id="f-454"><ix:nonFraction unitRef="usd" contextRef="c-52" decimals="-5" name="us-gaap:RestrictedCashNoncurrent" scale="6" id="f-455">1.1</ix:nonFraction></ix:nonFraction> million as of&#160;December&#160;31, 2024 and 2023. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets.</ix:continuation> For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221;</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentPolicyTextBlock" id="f-456" continuedAt="f-456-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Short-term Investments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We classify all marketable debt securities that have effective maturities of three months or less from the date of purchase as cash equivalents and those with effective maturities of greater than three months as short-term investment securities in the consolidated balance sheets. We determine the appropriate classification of our short-term investments at the time of purchase and reevaluate such designation at each balance sheet date. We have classified and accounted for our short-term investments as available-for-sale. After consideration of our risk versus reward objectives, as well as our liquidity requirements, we may sell these debt securities prior to their effective maturities.  </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We carry these short-term investments at fair value, and report the unrealized gains and losses, net of taxes, as a component of stockholders&#8217; equity, except for the changes in allowance for expected credit losses, which are included in &#8220;Interest and other expense, net&#8221; in the consolidated statements of operations. We determine any realized gains or losses on the sale of short-term investments on a specific identification method, and we record such gains and losses as a component of interest income.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Short-term investments are reviewed periodically for allowances for credit losses and impairment. When evaluating the investments, the Company reviews factors such as the extent to which the fair value of the security is less than the amortized cost basis, adverse conditions specifically related to the security, the financial condition of the issuer, the Company&#8217;s intent to sell, and whether it would be more likely than not that the Company would be required to sell the investments before the recovery of the amortized cost basis.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="f-457" continuedAt="f-457-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fair Value Measurements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">75</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-436-6" continuedAt="f-436-7"><ix:continuation id="f-457-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#8217;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life. </span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#8217;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ConcentrationRiskCreditRisk" id="f-458" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Credit Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2024, we h</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ad four customers that accounted for <ix:nonFraction unitRef="number" contextRef="c-53" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-459">56</ix:nonFraction>% of our ac</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">counts receivable balance. As of December&#160;31, 2023, four customers accounted for <ix:nonFraction unitRef="number" contextRef="c-54" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-460">58</ix:nonFraction>% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:CreditLossFinancialInstrumentPolicyTextBlock" id="f-461" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Financial Assets and Allowances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#8220;current expected credit loss model&#8221; or &#8220;CECL&#8221;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#8220;ACL&#8221;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" id="f-462" continuedAt="f-462-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unbilled Receivable</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-462-1">The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional.</ix:continuation> </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">76</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-436-7" continuedAt="f-436-8"><ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryPolicyTextBlock" id="f-463" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="cdxs:ConcentrationRiskSupplyRiskPolicyTextBlock" id="f-464" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Supply Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">-</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="f-465" continuedAt="f-465-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="f-466" continuedAt="f-466-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:1.979%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.820%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.820%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.981%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-55" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-467">5</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-56" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-468">3</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-57" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-469">5</ix:nonNumeric> years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div></ix:nonNumeric><ix:continuation id="f-465-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" id="f-470" continuedAt="f-470-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><ix:continuation id="f-470-1" continuedAt="f-470-2"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the years ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2024 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span></ix:continuation><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-470-2">ee Note 8, &#8220;Balance Sheet Details&#8221; and Note 13, &#8220;Commitments and Contingencies.&#8221;</ix:continuation> <ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:ImpairmentOfLongLivedAssetsHeldForUse" format="ixt:fixed-zero" scale="0" id="f-471">No</ix:nonFraction> impairment charges for long-lived assets were recorded during the year ended December 31, 2022.</span></div><ix:continuation id="f-456-1" continuedAt="f-456-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in interest and other expense, net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">77</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-436-8" continuedAt="f-436-9"><ix:continuation id="f-456-2" continuedAt="f-456-3"><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-456-3">The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.</ix:continuation> For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2024 and 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 6, &#8220;Investments in Non-Marketable Securities.&#8221;</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="f-472" continuedAt="f-472-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-472-1">Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment, considering, among other factors, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed.</ix:continuation> Goodwill had a carrying value of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:Goodwill" scale="6" id="f-473"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:Goodwill" scale="6" id="f-474">2.5</ix:nonFraction></ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of December&#160;31, 2024 and 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative &#8220;Step 0&#8221; assessment based on reviewing relevant events and circumstances; or a quantitative &#8220;Step 1&#8221; assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. <ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="0" id="f-475">No</ix:nonFraction> impairment charges related to goodwill were recognized in 2024. We recorded impairment charges related to goodwill of $<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="6" id="f-476">0.8</ix:nonFraction>&#160;million for the year ended December 31, 2023. For additional information on the impairment charge recorded in 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 8, &#8220;Balance Sheet Details.&#8221; </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeLeasesPolicyTextBlock" id="f-477" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease Accounting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxPolicyTextBlock" id="f-478" continuedAt="f-478-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">78</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-436-9" continuedAt="f-436-10"><ix:continuation id="f-478-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. In the event that it is determined that these deferred tax assets are not more likely than not to be realized, a valuation allowance is recorded against these deferred tax assets. As of December&#160;31, 2024 and 2023, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) 2009-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#8217;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#8220;NOL</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="f-479" continuedAt="f-479-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) No. 2023-07,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. The Company adopted ASU No. 2023-07 during the year ended December&#160;31, 2024. For additional information, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aside from those recently issued accounting pronouncements adopted and described above and not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2024 that are of significance or potential significance to us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the FASB issued ASU No. 2024-03, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement-Reporting Comprehensive Income-Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendment in the ASU will require additional disclosures and disaggregation of certain costs and expenses presented on the face of the income statement. This guidance is effective for the Company for fiscal years beginning after December 15, 2026. Early adoption is permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2024, the FASB issued ASU No. 2024-02, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements - Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU amends the FASB Accounting Standard Codification (the &#8220;ASC&#8221;) to remove references to various concepts statements and impacts a variety of topics in the ASC. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. If an entity adopts the amendments in an interim period, it must adopt them as of the beginning of the fiscal year that includes that interim period. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">79</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-479-1"><ix:continuation id="f-436-10"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, FASB issued ASU No. 2023-09,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU require public companies, on an annual basis, to provide disclosures of specific categories in the rate reconciliation, as well as disclosure of income taxes paid disaggregated by jurisdiction. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2023, FASB issued ASU No. 2023-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Disclosure Improvements: Codification Amendments in Response to the SEC&#8217;s Disclosure Update and Simplification Initiative</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the ASC. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#8217;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div></ix:continuation></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_94"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 3.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="f-480" continuedAt="f-480-1" escape="true"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></ix:nonNumeric></div><ix:continuation id="f-480-1" continuedAt="f-480-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Disaggregation of Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China). </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="f-481" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disaggregated information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-482">36,786</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-483">42,906</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-484">116,676</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-485">22,559</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-486">27,237</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-487">21,914</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-488">59,345</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-489">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-490">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-491">21,278</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-492">13,733</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-493">17,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-494">10,359</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-495">22,907</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-496">56,540</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-497">27,708</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-498">33,503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-499">65,050</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-500">59,345</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-501">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-502">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For additional information regarding revenue disaggregated by geography, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Balances</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="f-503" continuedAt="f-503-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, and contract liabilities (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" format="ixt:num-dot-decimal" scale="3" id="f-504">4,375</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerAssetGrossCurrent" scale="3" id="f-505">815</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnbilledContractsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-506">3,208</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnbilledContractsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-507">9,904</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ContractWithCustomerLiability" scale="3" id="f-508">450</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-509">10,761</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">80</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-480-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable when we have an unconditional right to recognize revenue and have issued an invoice to the customer. Our payment terms are generally between <ix:nonNumeric contextRef="c-69" name="cdxs:RevenueFromContractWithCustomerPaymentTerms" format="ixt-sec:durday" id="f-510">30</ix:nonNumeric> and <ix:nonNumeric contextRef="c-70" name="cdxs:RevenueFromContractWithCustomerPaymentTerms" format="ixt-sec:durday" id="f-511">90</ix:nonNumeric> days. We recognize unbilled receivables when we have an unconditional right to recognize revenue and have not issued an invoice to our customer. Unbilled receivables are transferred to accounts receivable on issuance of an invoice. Unbilled receivables are classified separately on the consolidated balance sheets as an asset. We maintain an allowance for credit losses on accounts receivables and unbilled receivables. As of December&#160;31, 2024, we have $<ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" scale="6" id="f-512">2.8</ix:nonFraction> million of short-term unbilled receivables presented as unbilled receivables within current assets and $<ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" scale="6" id="f-513">0.5</ix:nonFraction> million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. As of December&#160;31, 2023, we had $<ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" scale="6" id="f-514">9.1</ix:nonFraction> million of short-term unbilled receivables presented as unbilled receivables within current asset and $<ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-5" name="us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate" scale="6" id="f-515">0.8</ix:nonFraction> million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets represent our right to recognize revenue for custom products with no alternate use and under binding non-cancellable contracts and are largely related to our procurement of product. We recognize contract assets when we have a conditional right to recognize revenue. The transfer of control of certain products occurs in advance of the invoicing process, which generates contract assets. In addition, we recognize a contract asset related to milestones when we assess it is probable of being achieved and there will be no significant reversal of cumulative revenues. Contract assets are classified separately on the consolidated balance sheets as an asset and transferred to accounts receivables when our rights to payment become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities, or deferred revenue, represent our obligation to transfer a product or service to the customer, and for which we have received consideration from the customer. We recognize a contract liability when we receive advance customer payments under development agreements for research and development services, upfront license payments, and from upfront customer payments received under product supply agreements. Contract liabilities are classified as a liability on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024, 2023 and 2022, we had <ix:nonFraction unitRef="usd" contextRef="c-19" decimals="INF" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" format="ixt:fixed-zero" scale="0" id="f-516"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="INF" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" format="ixt:fixed-zero" scale="0" id="f-517"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="INF" name="us-gaap:ContractWithCustomerAssetCreditLossExpense" format="ixt:fixed-zero" scale="0" id="f-518">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> asset impairment charges related to contract assets. </span></div><ix:continuation id="f-503-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized the following revenues (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-519">10,121</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-520">17,937</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" scale="3" id="f-521">314</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" format="ixt:num-dot-decimal" scale="3" id="f-522">4,165</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" format="ixt:num-dot-decimal" scale="3" id="f-523">48,910</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" format="ixt:num-dot-decimal" scale="3" id="f-524">48,041</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-525">59,345</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-526">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance Obligations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of December&#160;31, 2024.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" id="f-527" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:32.964%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.624%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2026</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2027</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2028 and Thereafter</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" scale="3" id="f-528">350</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" scale="3" id="f-529">100</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" format="ixt:fixed-zero" scale="3" id="f-530">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" format="ixt:fixed-zero" scale="3" id="f-531">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:RevenueRemainingPerformanceObligation" scale="3" id="f-532">450</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">81</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_100"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 4. <ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerShareTextBlock" id="f-537" continuedAt="f-537-1" escape="true">Net Loss per Share</ix:nonNumeric></span></div><ix:continuation id="f-537-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, diluted and basic net loss per share are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Anti-Dilutive Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" id="f-538" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plans and ESPP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-80" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-539">13,613</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-81" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-540">9,028</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-82" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-541">7,442</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warrants</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-83" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="3" id="f-542">424</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-84" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:fixed-zero" scale="3" id="f-543">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-85" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:fixed-zero" scale="3" id="f-544">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total potentially dilutive securities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-545">14,037</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-546">9,028</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="3" id="f-547">7,442</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Included <ix:nonFraction unitRef="shares" contextRef="c-86" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-548">665,160</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-87" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-549">568,224</ix:nonFraction> of anti-dilutive potential common shares from ESPP for the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> Pertains to the warrants issued in connection with the Innovatus Loan. For additional information, see Note 14, &#8220;Debt.&#8221;</span></div></ix:nonNumeric></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_103"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 5. <ix:nonNumeric contextRef="c-1" name="us-gaap:CollaborativeArrangementDisclosureTextBlock" id="f-550" continuedAt="f-550-1" escape="true">Collaborative Arrangements</ix:nonNumeric></span></div><ix:continuation id="f-550-1" continuedAt="f-550-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Merck Sitagliptin Catalyst Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In February 2012, we entered into a <ix:nonNumeric contextRef="c-88" name="cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement" format="ixt-sec:durwordsen" id="f-551">five-year</ix:nonNumeric> Sitagliptin Catalyst Supply Agreement (&#8220;Sitagliptin Supply Agreement&#8221;) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its options under the terms of the Sitagliptin Supply Agreement to extend the agreement for an additional <ix:nonNumeric contextRef="c-89" name="cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement" format="ixt-sec:durwordsen" id="f-552">five years</ix:nonNumeric> through February 2022. In September 2021, the Sitagliptin Supply Agreement was amended to extend the agreement through December 2026. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized $<ix:nonFraction unitRef="usd" contextRef="c-90" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="f-553">7.1</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-91" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="f-554">4.4</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-92" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="f-555">5.9</ix:nonFraction> million in product revenue under this agreement in the years ended December 31, 2024, 2023 and 2022, respectively. This represented <ix:nonFraction unitRef="number" contextRef="c-93" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-556">12</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-94" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-557">6</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="c-95" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-558">4</ix:nonFraction>% of our total revenues in the years ended December 31, 2024, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, we recorded revenue of $<ix:nonFraction unitRef="usd" contextRef="c-96" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-559">2.5</ix:nonFraction> million from sitagliptin enzyme sales that were recognized over time based on the progress of the manufacturing process. These products will be </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shipped within the three-month period following the end of 2024. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Enzyme Supply Agreement and Commercial Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2016, we entered into an enzyme supply agreement with a customer, receiving an upfront payment recorded as deferred revenue which was recognized as the customer purchased our enzyme. In April 2019, we entered into a multi-year commercial agreement with the same customer for the exclusive use of our enzymes in some of their products, with royalties to be earned. Both the enzyme supply agreement and commercial agreement were terminated in 2023. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Due to the early termination of the enzyme supply agreement in 2023, we recognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-97" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-560">3.2</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of product revenue from the release of prior periods' product revenue deferrals and also recognized an additional </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-98" decimals="-5" name="us-gaap:ContractWithCustomerLiability" scale="6" id="f-561">1.3</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of product revenue as settlement fee.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">82</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-550-2" continuedAt="f-550-3"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2017, we entered into the Nestl&#233; Strategic Collaboration Agreement (the &#8220;Nestl&#233; SCA&#8221;) with Nestl&#233;, pursuant to which we and Nestl&#233; collaborated to leverage the CodeEvolver technology platform to develop novel enzymes for Nestl&#233;&#8217;s established Consumer Care and Medical Nutrition business areas.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2020, we entered into a development agreement with Nestl&#233; pursuant to which we and Nestl&#233; collaborated to advance a lead candidate discovered through our Nestl&#233; SCA, CDX-7108, targeting exocrine pancreatic insufficiency, into preclinical and early clinical studies. We, together with Nestl&#233; Health Science, initiated a Phase 1 clinical trial of CDX-7108 in the fourth quarter of 2021, and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on February 23, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we and Nestl&#233; announced interim results. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced plans to discontinue our development support of CDX-7108. Both the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Nestl&#233; SCA and development agreement were terminated in January 2024 under the terms of the CDX-7108 Acquisition Agreement with Nestl&#233;.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Nestl&#233; SCA and the development agreement, we recognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="usd" contextRef="c-99" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:fixed-zero" scale="0" id="f-562">nil</ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-100" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-563">4.1</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-101" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-564">7.1</ix:nonFraction>&#160;million in research and development revenue in the years ended December&#160;31, 2024, 2023 and 2022, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Acquisition Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we entered into an acquisition agreement (the &#8220;Acquisition Agreement&#8221;) with Nestl&#233;, pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#233;. Under the terms of the Acquisition Agreement, Nestl&#233; will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, and Codexis will receive upfront payment, future potential milestone payments and net-sales based royalties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-102" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-565">5.0</ix:nonFraction>&#160;million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in research and development revenue </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31, 2023 related to the Acquisition Agreement, with the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-103" decimals="-5" name="cdxs:CollaborativeArrangementUpfrontFeeAmount" format="ixt:num-dot-decimal" scale="6" id="f-566">5.0</ix:nonFraction>&#160;million upfront fee received in January 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Platform Technology Transfer and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2019, we entered into the Novartis CodeEvolver Agreement with Novartis. The Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement allows Novartis to use our proprietary CodeEvolver technology platform in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver technology platform to Novartis (the &#8220;Technology Transfer Period&#8221;). As a part of this technology transfer, we provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver technology platform at its designated laboratory.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the agreement, we received an upfront payment of $<ix:nonFraction unitRef="usd" contextRef="c-104" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-567">5.0</ix:nonFraction>&#160;million shortly after the effective date of the Novartis CodeEvolver Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $<ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" format="ixt:num-dot-decimal" scale="6" id="f-568">4.0</ix:nonFraction>&#160;million. We have also received an aggregate of $<ix:nonFraction unitRef="usd" contextRef="c-106" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" scale="6" id="f-569">5.0</ix:nonFraction> million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#8220;Improvements Term&#8221;), Novartis will pay Codexis annual payments over <ix:nonNumeric contextRef="c-107" name="cdxs:RevenueRecognitionContingentAnnualPaymentsTerm" format="ixt-sec:durwordsen" id="f-570">four years</ix:nonNumeric> which amount to an additional $<ix:nonFraction unitRef="usd" contextRef="c-108" decimals="-5" name="cdxs:RevenueRecognitionContingentAnnualReceivableIncrease" format="ixt:num-dot-decimal" scale="6" id="f-571">8.0</ix:nonFraction>&#160;million in aggregate. We received an aggregate of $<ix:nonFraction unitRef="usd" contextRef="c-109" decimals="-5" name="cdxs:RevenueRecognitionAnnualPayment" format="ixt:num-dot-decimal" scale="6" id="f-572"><ix:nonFraction unitRef="usd" contextRef="c-110" decimals="-5" name="cdxs:RevenueRecognitionAnnualPayment" format="ixt:num-dot-decimal" scale="6" id="f-573"><ix:nonFraction unitRef="usd" contextRef="c-111" decimals="-5" name="cdxs:RevenueRecognitionAnnualPayment" format="ixt:num-dot-decimal" scale="6" id="f-574">6.0</ix:nonFraction></ix:nonFraction></ix:nonFraction>&#160;million for the first <ix:nonFraction unitRef="payment" contextRef="c-110" decimals="INF" name="cdxs:RevenueRecognitionNumberOfAnnualPayment" format="ixt-sec:numwordsen" scale="0" id="f-575"><ix:nonFraction unitRef="payment" contextRef="c-109" decimals="INF" name="cdxs:RevenueRecognitionNumberOfAnnualPayment" format="ixt-sec:numwordsen" scale="0" id="f-576"><ix:nonFraction unitRef="payment" contextRef="c-111" decimals="INF" name="cdxs:RevenueRecognitionNumberOfAnnualPayment" format="ixt-sec:numwordsen" scale="0" id="f-577">three</ix:nonFraction></ix:nonFraction></ix:nonFraction> annual payments in 2022 to 2024. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized overtime based on hours incurred. Revenue allocated to improvements made during the Improvements Term is being recognized during the Improvements Term. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-112" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="f-578">1.0</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-113" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="f-579">1.1</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-114" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" id="f-580">1.0</ix:nonFraction> million in research and development revenue in the years ended December&#160;31, 2024, 2023 and 2022, respectively.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">83</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-550-3" continuedAt="f-550-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In December 2019, we entered a license agreement with Roche to provide Roche with our evolved T4 DNA ligase high-performance molecular diagnostic enzyme. The royalty bearing license grants Roche worldwide rights to include the evolved T4 DNA ligase in its nucleic acid sequencing products and workflows. Under the license agreement, we received an initial collaboration fee payment of $<ix:nonFraction unitRef="usd" contextRef="c-115" decimals="-5" name="us-gaap:ContractWithCustomerLiability" scale="6" id="f-581">0.8</ix:nonFraction> million within <ix:nonNumeric contextRef="c-116" name="cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" format="ixt-sec:durday" id="f-582">45</ix:nonNumeric> days of the effective date of the agreement, and we received an additional $<ix:nonFraction unitRef="usd" contextRef="c-117" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" scale="6" id="f-583">0.9</ix:nonFraction> million milestone payment after the completion of technology transfer in October 202</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">0. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior 2019 agreement. Under the terms of the deal, we received upfront and technical milestones payments. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We recognized research and development fees </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">of $<ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-584">6.0</ix:nonFraction>&#160;million in the year ended December 31, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">2024 related to the license agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, we entered into a Strategic Collaboration and License Agreement (the &#8220;Takeda Agreement&#8221;) with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (&#8220;Takeda&#8221;), pursuant to which we have collaborated with Takeda to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $<ix:nonFraction unitRef="usd" contextRef="c-119" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-585">8.5</ix:nonFraction>&#160;million and we initiated activities under <ix:nonFraction unitRef="plan" contextRef="c-120" decimals="INF" name="cdxs:NumberOfProgramPlans" format="ixt-sec:numwordsen" scale="0" id="f-586">three</ix:nonFraction> program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the &#8220;Initial Programs&#8221;). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. We completed the research and development services relating to the fourth program with Takeda during the second quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the Takeda Agreement, we were eligible to receive other payments that included (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">i) clinical development and commercialization-based milestones, per target gene, of up to $<ix:nonFraction unitRef="usd" contextRef="c-121" decimals="-5" name="cdxs:RevenueRecognitionContingentReceivable" scale="6" id="f-587">104.0</ix:nonFraction> million and (ii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits. Takeda announced in April 2023 the discontinuation of these development programs, and in 2024 we divested our rights in some of the underlying assets to Crosswalk Therapeutics.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $<ix:nonFraction unitRef="usd" contextRef="c-122" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" scale="6" id="f-588">0.8</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-123" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" scale="6" id="f-589">2.0</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-124" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" scale="6" id="f-590">4.9</ix:nonFraction> million in the years ended December 31, 2024, 2023, and 2022, respectively. As of December&#160;31, 2024 and 2023, we had deferred revenue balances of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="usd" contextRef="c-125" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:fixed-zero" scale="6" id="f-591"><ix:nonFraction unitRef="usd" contextRef="c-126" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:fixed-zero" scale="6" id="f-592">nil</ix:nonFraction></ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with MAI in which we purchased <ix:nonFraction unitRef="shares" contextRef="c-127" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-593">1,587,050</ix:nonFraction> shares of MAI's Series A preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-128" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" scale="6" id="f-594">1.0</ix:nonFraction> million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Concurrently with our initial equity investment, we entered into the MAI Agreement, pursuant to which we performed services utilizing our CodeEvolver technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which are valued based on the observed transaction price of similar securities of MAI issued to third parties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the MAI Agreement, we will have the right to use and sell the engineered enzymes to third parties for any purpose other than for the synthesis of native DNA. Under the MAI Agreement, we would make a $<ix:nonFraction unitRef="usd" contextRef="c-129" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-595">0.5</ix:nonFraction>&#160;million payment to MAI upon our achievement of a milestone of $<ix:nonFraction unitRef="usd" contextRef="c-130" decimals="-5" name="cdxs:ContractWithCustomerSalesMilestone" format="ixt:num-dot-decimal" scale="6" id="f-596">5.0</ix:nonFraction>&#160;million in aggregate commercial sales to third parties of the engineered enzymes or any product incorporating or derived from the engineered enzymes for any purpose other than the synthesis of native DNA. As contemplated in the MAI Agreement, we executed the Commercial License and Enzyme Supply Agreement with MAI (&#8220;MAI Supply Agreement&#8221;) in July 2022 following the completion of certain timelines specified in the SOW.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $<ix:nonFraction unitRef="usd" contextRef="c-131" decimals="-5" name="cdxs:RelatedPartyTransactionMilestonePaymentReceived" scale="6" id="f-597">1.0</ix:nonFraction> million in the form of an additional <ix:nonFraction unitRef="shares" contextRef="c-132" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" format="ixt:num-dot-decimal" scale="0" id="f-598">1,587,049</ix:nonFraction> shares of MAI Series B preferred stock. Upon execution of the MAI Supply Agreement in July 2022, we received the commercialization and enzyme supply agreement milestone payment pursuant to the MAI Agreement of $<ix:nonFraction unitRef="usd" contextRef="c-133" decimals="-5" name="cdxs:RelatedPartyTransactionMilestonePaymentReceived" scale="6" id="f-599">1.0</ix:nonFraction> million in the form of an additional <ix:nonFraction unitRef="shares" contextRef="c-134" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" format="ixt:num-dot-decimal" scale="0" id="f-600">1,587,049</ix:nonFraction> shares of MAI Series B preferred stock. Pursuant to the MAI Agreement, we recognized <ix:nonFraction unitRef="usd" contextRef="c-135" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-601">nil</ix:nonFraction> , <ix:nonFraction unitRef="usd" contextRef="c-136" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:fixed-zero" scale="0" id="f-602">nil</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-137" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" scale="6" id="f-603">1.2</ix:nonFraction> million in research and development revenue from transactions with MAI in the years ended December&#160;31, 2024, 2023, and 2022, respectively. Payment for the services rendered was received in the form of additional MAI Series A and Series B preferred stock. We received an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-138" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:fixed-zero" scale="0" id="f-604">nil</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-139" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:fixed-zero" scale="0" id="f-605">nil</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-140" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-606">1,587,049</ix:nonFraction> shares of MAI's Series A and B preferred stock in the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">84</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-550-4" continuedAt="f-550-5"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase enzyme in MAI&#8217;s Fully Enzymatic Synthesis technology. Pursuant to the MAI Supply Agreement, we recognized $<ix:nonFraction unitRef="usd" contextRef="c-141" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" scale="6" id="f-607">0.1</ix:nonFraction> million of minimum royalty as part of the research and development revenue in the year ended December&#160;31, 2024. In January 2025, MAI assigned the MAI Supply Agreement to a third party in connection with the sale of its related assets to such third party. We recognized </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-142" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" scale="6" id="f-608">0.2</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-143" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-609">0.2</ix:nonFraction>&#160;million, and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-144" decimals="-5" name="us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized" scale="6" id="f-610">0.5</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in product revenue in the years ended December&#160;31, 2024, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023, and 2022, respectively</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">MAI was considered a related party until August 2022, when the related party relationship ended following the retirement of our former President and CEO, who also served on MAI&#8217;s board of directors.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pfizer Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2021 and 2022, we received purchase orders from Pfizer for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a party to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#8220;Pfizer Supply Agreement&#8221;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $<ix:nonFraction unitRef="usd" contextRef="c-145" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-611">25.9</ix:nonFraction>&#160;million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, <ix:nonFraction unitRef="number" contextRef="c-146" decimals="2" name="cdxs:ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" scale="-2" id="f-612">90</ix:nonFraction>% of the fee ($<ix:nonFraction unitRef="usd" contextRef="c-145" decimals="-5" name="cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-613">23.3</ix:nonFraction>&#160;million) is creditable against (i) future orders of CDX-616 used to manufacture its PAXLOVID with shipment dates prior to December 31, 2023, and (ii) fees associated with any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $<ix:nonFraction unitRef="usd" contextRef="c-147" decimals="-5" name="cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-614">23.3</ix:nonFraction>&#160;million credit towards a license to develop future product candidates, for which we recognized $<ix:nonFraction unitRef="usd" contextRef="c-148" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-615">5.0</ix:nonFraction>&#160;million as non-cash research and development revenue in the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April 4, 2023. We also recognized $<ix:nonFraction unitRef="usd" contextRef="c-149" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-616">2.0</ix:nonFraction>&#160;million of non-cash research and development revenue, and credited against the $<ix:nonFraction unitRef="usd" contextRef="c-150" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-617">25.9</ix:nonFraction>&#160;million fee, for other services provided to Pfizer during the year ended December 31, 2023. Up to <ix:nonFraction unitRef="number" contextRef="c-151" decimals="2" name="cdxs:ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" scale="-2" id="f-618">50</ix:nonFraction>% of any portion of the $<ix:nonFraction unitRef="usd" contextRef="c-152" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-619">25.9</ix:nonFraction>&#160;million which has not been credited under items (i) and (ii) was creditable against future orders of CDX-616 used to manufacture PAXLOVID with shipment dates in 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On December 20, 2024, we entered into a license agreement whereby Pfizer utilized the remaining credit toward the upfront fee under the license agreement, pursuant to the terms of the same-day amendment to the Pfizer Supply Agreement that allowed the product credit to be utilized for this license. We recognized $<ix:nonFraction unitRef="usd" contextRef="c-153" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-620">9.5</ix:nonFraction>&#160;million of non-cash research and development revenue in the year ended December 31, 2024 related to the license agreement, and no further credit remains available for Pfizer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the fourth quarter of 2023, and pursuant to the Pfizer Supply Agreement, we released the prior year deferrals for the unused portion of the retainer fee that is not creditable beyond 2023 and we recognized product revenue of $<ix:nonFraction unitRef="usd" contextRef="c-154" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-621">8.2</ix:nonFraction>&#160;million in the year ended December 31, 2023. We recognized product revenue of $<ix:nonFraction unitRef="usd" contextRef="c-155" decimals="-5" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" format="ixt:num-dot-decimal" scale="6" id="f-622">75.4</ix:nonFraction>&#160;million in the year ended December&#160;31, 2022, from the sale of quantities of CDX-616 to Pfizer. Product revenues recognized by us from the Pfizer Supply Agreement represented <ix:nonFraction unitRef="number" contextRef="c-156" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-623">0</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-157" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-624">12</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="c-158" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-625">54</ix:nonFraction>% of our total revenues for the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><ix:continuation id="f-550-5" continuedAt="f-550-6"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023</span></ix:continuation><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-550-6">, we had <ix:nonFraction unitRef="usd" contextRef="c-152" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:fixed-zero" scale="0" id="f-626">nil</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-150" decimals="-5" name="us-gaap:ContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="6" id="f-627">9.5</ix:nonFraction>&#160;million, respectively, in deferred revenue related to the $<ix:nonFraction unitRef="usd" contextRef="c-145" decimals="-5" name="cdxs:ContractWithCustomerLiabilityRetainerFee" format="ixt:num-dot-decimal" scale="6" id="f-628">25.9</ix:nonFraction>&#160;million fee received from Pfizer.</ix:continuation> </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">85</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_109"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 6. <ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="f-629" continuedAt="f-629-1" escape="true">Investments in Non-Marketable Securities</ix:nonNumeric></span></div><ix:continuation id="f-629-1" continuedAt="f-629-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in MAI and seqWell. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy when we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. The fair value of non-marketable equity securities are classified within Level 3 when we estimate fair value using unobservable inputs such as when we remeasure due to impairment and we use discount rates, market data of comparable companies, and rights and obligations of the securities the Company holds, among others. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component interest and other expense, net in the consolidated statements of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the <ix:nonFraction unitRef="shares" contextRef="c-159" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-630">207,070</ix:nonFraction> shares of Arzeda&#8217;s Series B preferred stock were converted into <ix:nonFraction unitRef="shares" contextRef="c-160" decimals="0" name="us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion" format="ixt:num-dot-decimal" scale="0" id="f-631">41,414</ix:nonFraction> common stock pursuant to the Stock Purchase Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2023, we purchased an additional</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> <ix:nonFraction unitRef="shares" contextRef="c-161" decimals="0" name="us-gaap:InvestmentOwnedBalanceShares" format="ixt:num-dot-decimal" scale="0" id="f-632">985,545</ix:nonFraction> shares of Series B preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-162" decimals="-5" name="us-gaap:PaymentsToAcquireOtherInvestments" scale="6" id="f-633">0.8</ix:nonFraction> million in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">MAI, a privately held life sciences company</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. As of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we held an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-163" decimals="0" name="us-gaap:NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" format="ixt:num-dot-decimal" scale="0" id="f-634">19,277,914</ix:nonFraction> shares of MAI's Series A and B preferred stock that we have earned or purchased from MAI.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell, a privately held life sciences company, pursuant to which we purchased <ix:nonFraction unitRef="shares" contextRef="c-164" decimals="-6" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-635">1,000,000</ix:nonFraction> shares of seqWell's Series C preferred stock for $<ix:nonFraction unitRef="usd" contextRef="c-164" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="6" id="f-636">5.0</ix:nonFraction> million. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#8220;seqWell Agreement&#8221;), pursuant to which we provided research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. In January 2025, we sold </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">assets that were developed under the seqWell Agreement to seqWell in exchange for the right to receive a cash payment upon future events and a warrant to purchase seqWell&#8217;s common stock exercisable upon future events, and terminated the seqWell Agreement. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional <ix:nonFraction unitRef="shares" contextRef="c-165" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-637">88,256</ix:nonFraction> shares of seqWell's Series C-1 preferred stock and <ix:nonFraction unitRef="shares" contextRef="c-166" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-638">44,128</ix:nonFraction> common stock warrants for $<ix:nonFraction unitRef="usd" contextRef="c-166" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="6" id="f-639">0.4</ix:nonFraction> million. We received <ix:nonFraction unitRef="shares" contextRef="c-167" decimals="0" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" format="ixt:num-dot-decimal" scale="0" id="f-640">205,279</ix:nonFraction> shares of seqWell's common stock from research and development services with seqWell and we recognized $<ix:nonFraction unitRef="usd" contextRef="c-168" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="6" id="f-641">0.2</ix:nonFraction>&#160;million in research and development revenue from these services in the year ended December 31, 2023. As of December&#160;31, 2024, we held an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-169" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-642">1,088,256</ix:nonFraction> shares of Series C and C-1 preferred stock, <ix:nonFraction unitRef="shares" contextRef="c-170" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-643">205,279</ix:nonFraction> shares of common stock and <ix:nonFraction unitRef="shares" contextRef="c-171" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares" format="ixt:num-dot-decimal" scale="0" id="f-644">44,128</ix:nonFraction> of common stock warrants that we have earned or purchased from seqWell.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2024, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we recognized an impairment charge of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" scale="6" id="f-645">6.9</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which is presented within interest and other expense, net in the consolidated statements of operations. This adjustment included the write-down of our investment in MAI by </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-172" decimals="-5" sign="-" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" scale="6" id="f-646">3.9</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> during the third quarter of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> to its related fair value as determined based on valuation methods using the latest observed transaction price of MAI&#8217;s preferred stock securities anticipated to be issued during the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">fourth quarter</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and adjusted for the rights and obligations of the preferred stock securities the Company holds, and an additional </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-173" decimals="-5" sign="-" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" scale="6" id="f-647">2.8</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> impairment charge during the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">fourth quarter</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024 to adjust the carrying value of our investment to zero as the investee ceased its operations </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">during the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">fourth quarter</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024 due to liquidity position and lack of access to additional capital</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The other $<ix:nonFraction unitRef="usd" contextRef="c-174" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" scale="6" id="f-648">0.2</ix:nonFraction> million of impairment charge on our investment in seqWell is related to the write-down to its estimated fair value using the recent transaction price of similar preferred stock securities issued by the investee and adjusted for the rights and obligations of the preferred stock securities the Company holds.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">86</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-629-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December 31, 2023, we recognized an impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-649">12.2</ix:nonFraction>&#160;million and included this as adjustment to the carrying value of our investments in seqWell, Arzeda and MAI. This adjustment, which is presented within other income (expense), net in the consolidated statements of operations, included the write-down of the carrying value of our investment in seqWell by $<ix:nonFraction unitRef="usd" contextRef="c-175" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-650">3.0</ix:nonFraction>&#160;million during the third quarter of 2023 to its estimated fair value as determined based on valuation methods using the recent transaction price of similar preferred stock securities issued by seqWell and adjusted for the rights and obligations of the preferred stock securities the Company holds. The $<ix:nonFraction unitRef="usd" contextRef="c-176" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-651">1.2</ix:nonFraction>&#160;million of impairment charge on our investment in Arzeda is related to the write-down to its estimated fair value based on the latest observed transaction price of Arzeda's preferred stock securities issued during the fourth quarter of 2023 and the subsequent conversion of our existing Series B preferred stock into Arzeda's common stock during the fourth quarter of 2023. The other $<ix:nonFraction unitRef="usd" contextRef="c-177" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" format="ixt:num-dot-decimal" scale="6" id="f-652">8.0</ix:nonFraction>&#160;million of impairment charge represents the difference between the estimated fair value and carrying value of our investment in MAI as of December 31, 2023 based on quantitative and qualitative analysis. This analysis involved use of judgment, estimates and assumptions, such as the near-term prospects of the investee in the market in which it operates, evaluation of the investee&#8217;s financial condition in relation to its outstanding obligations, and probabilities of securing additional capital through various alternative scenarios.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December 31, 2022, we recogniz</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed a $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" scale="6" id="f-653">0.2</ix:nonFraction> million u</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nrealized gain in interest and other expense, net, and included as adjustment to the carrying value of our investment in MAI, for the remeasurement of the additional <ix:nonFraction unitRef="shares" contextRef="c-178" decimals="0" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" format="ixt:num-dot-decimal" scale="0" id="f-654">1,587,049</ix:nonFraction> shares of Series B preferred stock received as a milestone payment during the third quarter of 2022 based on the latest observed transaction price of MAI's preferred stock.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other than as disclosed above, there were no remeasurement events for our investments in non-marketable equity securities in 2024 and 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We recognized <ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" format="ixt:fixed-zero" scale="0" id="f-655"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" format="ixt:fixed-zero" scale="0" id="f-656">no</ix:nonFraction></ix:nonFraction> realized gains or losses during the years ended December&#160;31, 2024 and 2023.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" id="f-657" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">seqWell</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-179" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-658">2,416</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-180" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-659">2,625</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">MAI</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-181" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:fixed-zero" scale="3" id="f-660">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-182" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-661">6,693</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other investments in non-marketable equity securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-183" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="3" id="f-662">382</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-184" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" scale="3" id="f-663">382</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-664">2,798</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" format="ixt:num-dot-decimal" scale="3" id="f-665">9,700</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_112"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 7. <ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueMeasurementInputsDisclosureTextBlock" id="f-666" continuedAt="f-666-1" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock" id="f-667" continuedAt="f-667-1" escape="true"><ix:continuation id="f-666-1" continuedAt="f-666-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables show the Company&#8217;s cash, cash equivalents, and short-term investments by significant investment category (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:25.800%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.605%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amortized Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash and Cash Equivalents</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Short-term Investments</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-668">3,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-669">3,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-185" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-670">3,284</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-186" decimals="-3" name="us-gaap:Cash" format="ixt:fixed-zero" scale="3" id="f-671">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-187" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-672">15,980</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-187" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-673">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-187" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:fixed-zero" scale="3" id="f-674">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-187" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-675">15,980</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-188" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-676">15,980</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-189" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-677">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 2</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">:</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commercial paper</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-190" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-678">6,768</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-190" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-679">1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-190" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:fixed-zero" scale="3" id="f-680">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-190" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-681">6,769</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-191" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-682">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-192" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-683">6,769</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Corporate debt</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-684">17,187</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-685">8</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-193" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-686">15</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-687">17,180</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-194" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-688">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-195" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-689">17,180</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">U.S. agency securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-196" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-690">1,989</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-196" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-691">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-196" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:fixed-zero" scale="3" id="f-692">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-196" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-693">1,991</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-197" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-694">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-198" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-695">1,991</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">U.S. treasury securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-199" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-696">28,198</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-199" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-697">56</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-199" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:fixed-zero" scale="3" id="f-698">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-199" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-699">28,254</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-200" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-700">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-201" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-701">28,254</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Subtotal</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-202" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-702">54,142</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-202" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-703">67</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-202" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-704">15</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-202" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-705">54,194</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-203" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-706">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-204" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-707">54,194</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" format="ixt:num-dot-decimal" scale="3" id="f-708">73,406</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-709">67</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-710">15</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-711">73,458</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-185" decimals="-3" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-712">19,264</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-186" decimals="-3" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-713">54,194</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> The valuation techniques used to measure the fair values of the Company&#8217;s Level 2 financial instruments uses inputs that are either directly or indirectly observable for the asset through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life.</span></div></ix:continuation></ix:nonNumeric><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">87</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-666-2" continuedAt="f-666-3"><ix:continuation id="f-667-1"><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:25.800%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.605%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amortized Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash and Cash Equivalents</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Short-term Investments</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-714">8,742</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-715">8,742</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-205" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-716">8,742</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-206" decimals="-3" name="us-gaap:Cash" format="ixt:fixed-zero" scale="3" id="f-717">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-718">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-719">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:fixed-zero" scale="3" id="f-720">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-207" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-721">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-208" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-722">56,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-209" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:fixed-zero" scale="3" id="f-723">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cdxs:CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" format="ixt:num-dot-decimal" scale="3" id="f-724">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-725">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:fixed-zero" scale="3" id="f-726">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-727">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-205" decimals="-3" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-728">65,116</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-206" decimals="-3" name="us-gaap:CashCashEquivalentsAndShortTermInvestments" format="ixt:fixed-zero" scale="3" id="f-729">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We limit the credit risk associated with our cash equivalents and short-term investments by placing them with banks and institutions we believe are highly credit-worthy and investing in highly-rated investments. As of December&#160;31, 2024, the contractual maturity of all investments held was less than one year. </span></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-666-3">During the years ended December&#160;31, 2024 and 2023, we did <ix:nonFraction unitRef="usd" contextRef="c-210" decimals="INF" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" format="ixt:fixed-zero" scale="0" id="f-730"><ix:nonFraction unitRef="usd" contextRef="c-211" decimals="INF" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" format="ixt:fixed-zero" scale="0" id="f-731">no</ix:nonFraction></ix:nonFraction>t recognize any significant credit losses <ix:nonFraction unitRef="usd" contextRef="c-210" decimals="INF" name="us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" format="ixt:fixed-zero" scale="0" id="f-732"><ix:nonFraction unitRef="usd" contextRef="c-211" decimals="INF" name="us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" format="ixt:fixed-zero" scale="0" id="f-733">no</ix:nonFraction></ix:nonFraction>r other-than-temporary impairment losses on non-marketable securities.</ix:continuation> </span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_115"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 8. <ix:nonNumeric contextRef="c-1" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" id="f-734" continuedAt="f-734-1" escape="true">Balance Sheet Details </ix:nonNumeric></span></div><ix:continuation id="f-734-1" continuedAt="f-734-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="f-735" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryRawMaterials" format="ixt:fixed-zero" scale="3" id="f-736">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryRawMaterials" scale="3" id="f-737">108</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work in process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryWorkInProcess" scale="3" id="f-738">29</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryWorkInProcess" scale="3" id="f-739">7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods </span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryFinishedGoods" format="ixt:num-dot-decimal" scale="3" id="f-740">1,770</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryFinishedGoods" format="ixt:num-dot-decimal" scale="3" id="f-741">2,570</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total inventories</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-742">1,799</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-743">2,685</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Prepaid expenses and other current assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, prepaid expenses and other current assets consists of prepaid expenses of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:PrepaidExpenseCurrent" scale="6" id="f-744">3.7</ix:nonFraction> million and other current assets of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:OtherAssetsCurrent" scale="6" id="f-745">0.5</ix:nonFraction> million.  As of December&#160;31, 2023, prepaid expenses and other current assets consists of prepaid expenses of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:PrepaidExpenseCurrent" scale="6" id="f-746">4.6</ix:nonFraction> million and other current assets of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:OtherAssetsCurrent" scale="6" id="f-747">0.6</ix:nonFraction> million.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment, net</span></div><ix:continuation id="f-466-1" continuedAt="f-466-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-212" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-748">35,949</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-213" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-749">37,216</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-214" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-750">12,159</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-215" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-751">11,912</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-752">2,459</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-217" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-753">2,565</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office furniture and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-754">1,124</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-218" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-755">1,469</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-219" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-756">3,441</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-757">1,636</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-758">55,132</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-759">54,798</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-760">40,935</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-761">39,311</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-762">14,197</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-763">15,487</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $<ix:nonFraction unitRef="usd" contextRef="c-221" decimals="-5" name="us-gaap:PropertyPlantAndEquipmentDisposals" scale="6" id="f-764">2.6</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-222" decimals="-5" name="us-gaap:PropertyPlantAndEquipmentDisposals" scale="6" id="f-765">3.0</ix:nonFraction> million were retired during the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">88</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-734-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. As part of this plan, we entered into agreements to sell certain laboratory equipment located in our San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos facility to Vaxcyte (see further discussion at Note 13, &#8220;Commitments and Contingencies&#8221;). These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based on Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeded fair value less costs to sell, which resulted in a write-down o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $<ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-5" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="6" id="f-766">1.5</ix:nonFraction>&#160;million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December 31, 2023, the Company recorded a n</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on-cash impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-5" name="us-gaap:ImpairmentOfLeasehold" scale="6" id="f-767">4.7</ix:nonFraction> million associated with the San Carlos facility leasehold improvements. For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221; </span></div><ix:continuation id="f-466-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-224" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-768">3,964</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-769">4,594</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-770">4,556</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-227" decimals="-3" name="us-gaap:Depreciation" scale="3" id="f-771">881</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-228" decimals="-3" name="us-gaap:Depreciation" scale="3" id="f-772">924</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-229" decimals="-3" name="us-gaap:Depreciation" scale="3" id="f-773">846</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total depreciation expense&#160;&#160;&#160;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-774">4,845</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-775">5,518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-776">5,402</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfGoodwillTextBlock" id="f-777" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-778">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-779">3,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GoodwillImpairmentLoss" format="ixt:fixed-zero" scale="3" id="f-780">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:GoodwillImpairmentLoss" scale="3" id="f-781">778</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-782">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-783">2,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill was previously allocated to each of the Company's reporting units. In July 2023, we announced a restructuring of our business and that we are discontinuing investment in certain development programs, primarily in Novel Biotherapeutics. As a result of this plan, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" format="ixt:num-dot-decimal" scale="6" id="f-784">0.8</ix:nonFraction>&#160;million to write off all of the associated goodwill. The impairment charge is recorded within the asset impairment and other charges in the consolidated statements of operation in the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Goodwill had a carrying </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">value </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:Goodwill" scale="6" id="f-785"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:Goodwill" scale="6" id="f-786">2.5</ix:nonFraction></ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2024 and 2023, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Accrued Liabilities</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="f-787" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-788">3,064</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-789">2,330</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued purchases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PurchaseObligation" format="ixt:num-dot-decimal" scale="3" id="f-790">2,908</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PurchaseObligation" format="ixt:num-dot-decimal" scale="3" id="f-791">1,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" scale="3" id="f-792">251</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-793">1,003</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other accrued liabilities</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-794">6,223</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-795">4,735</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_118"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 9. <ix:nonNumeric contextRef="c-1" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="f-796" continuedAt="f-796-1" escape="true">Stock-based Compensation</ix:nonNumeric></span></div><ix:continuation id="f-796-1" continuedAt="f-796-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Incentive Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2024, our Board of Directors (the &#8220;Board&#8221;) approved the 2024 Employment Inducement Award Plan (the &#8220;2024 Inducement Plan&#8221;) which provides for the grant of non-qualified stock options, RSAs, restricted stock units (&#8220;RSUs&#8221;), and performance awards to eligible employees with respect to an aggregate of up to <ix:nonFraction unitRef="shares" contextRef="c-230" decimals="-6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-797">1,000,000</ix:nonFraction> shares of our common stock.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">89</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-2" continuedAt="f-796-3"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2023, our Board approved the 2022 Employment Inducement Award Plan (the &#8220;2022 Inducement Plan&#8221;) which provides for the grant of non-qualified stock options, RSAs, RSUs, performance awards, other stock awards and dividend equivalents to eligible employees with respect to an aggregate of up to <ix:nonFraction unitRef="shares" contextRef="c-231" decimals="-6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-798">2,000,000</ix:nonFraction> shares of our common stock. In June 2023, the 2022 Inducement Plan was terminated upon the approval of an amendment to the Company's 2019 Incentive Award Plan (the &#8220;2019 Plan&#8221;) at the Annual Meeting of Stockholders in June 2023 (the &#8220;2023 Annual Meeting&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Board and stockholders approved the 2019 Plan. The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the &#8220;2010 Plan&#8221;) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder. The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants. The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, RSAs, RSUs, PSUs, PBOs, other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares of our common stock that were initially available for issuance under the 2019 Plan is equal to the sum of (i) <ix:nonFraction unitRef="shares" contextRef="c-232" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-799">7,897,144</ix:nonFraction> shares, and (ii)&#160;any shares subject to awards granted under the 2010 Plan that were outstanding as of April&#160;22, 2019 and thereafter terminate, expire, lapse or are forfeited. In June 2019, <ix:nonFraction unitRef="shares" contextRef="c-233" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="6" id="f-800">8.1</ix:nonFraction>&#160;million shares authorized for issuance under the 2019 Plan were registered under the Securities Act. In April 2023, the Board approved an amendment to the 2019 Plan (the &#8220;2019 Amended Plan&#8221;) which became effective upon stockholders' approval at the 2023 Annual Meeting. The 2019 Amended Plan included the (i) increase in the number of shares available by <ix:nonFraction unitRef="shares" contextRef="c-234" decimals="-6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-801">8,000,000</ix:nonFraction> shares, such that an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-235" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-802">15,897,144</ix:nonFraction> shares are reserved for issuance under the 2019 Amended Plan and any shares subject to awards granted under the 2010 Plan, and (ii) increase in the number of shares that may be granted as incentive stock options under the 2019 Amended Plan such that an aggregate of <ix:nonFraction unitRef="shares" contextRef="c-235" decimals="-6" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" format="ixt:num-dot-decimal" scale="0" id="f-803">22,000,000</ix:nonFraction> shares of common stock may be granted as incentive stock options under the 2019 Amended Plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, total shares remaining available for issuance under the 2019 Plan and 2024 Inducement Plan were</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> <ix:nonFraction unitRef="shares" contextRef="c-236" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-804">3,937,070</ix:nonFraction> s</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">hares.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2023, the Board approved an employee stock purchase plan (as may be amended from time to time, the &#8220;ESPP&#8221;) which became effective upon approval at the 2023 Annual Meeting. The ESPP allows eligible employees of the Company to purchase shares of our common stock through payroll deductions. Offering periods are generally over a <ix:nonNumeric contextRef="c-237" name="cdxs:ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" format="ixt-sec:durmonth" id="f-805">24</ix:nonNumeric>-month period and begin in May and November of each year. The per share purchase price will be the lower of <ix:nonFraction unitRef="number" contextRef="c-237" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" scale="-2" id="f-806">85</ix:nonFraction>% of the closing trading price per share of our common stock on the first trading date of an offering period in which a participant is enrolled or <ix:nonFraction unitRef="number" contextRef="c-237" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" scale="-2" id="f-807">85</ix:nonFraction>% of the closing trading price per share on the purchase date. Participant purchases are limited to a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-237" decimals="INF" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" format="ixt:num-dot-decimal" scale="0" id="f-808">25,000</ix:nonFraction> of fair value of our stock per calendar year. The Company is authorized to grant up to <ix:nonFraction unitRef="shares" contextRef="c-238" decimals="-6" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-809">2,000,000</ix:nonFraction> shares of common stock under the ESPP. The first offering period of the ESPP commenced in December 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2024, <ix:nonFraction unitRef="shares" contextRef="c-239" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-810">263,157</ix:nonFraction> shares of our common stock were purchased under the ESPP. As of December&#160;31, 2024, <ix:nonFraction unitRef="shares" contextRef="c-240" decimals="0" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" format="ixt:num-dot-decimal" scale="0" id="f-811">1,736,843</ix:nonFraction> shares of common stock were available for future issuance under the ESPP. We recognized $<ix:nonFraction unitRef="usd" contextRef="c-239" decimals="-5" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="f-812">0.3</ix:nonFraction> million of stock-based compensation expenses related to the ESPP for the year ended December&#160;31, 2024. As of December&#160;31, 2024, the total unrecognized stock-based compensation expense, net of expected forfeitures, related to the ESPP was $<ix:nonFraction unitRef="usd" contextRef="c-240" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" scale="6" id="f-813">0.6</ix:nonFraction> million and is expected to be recognized over the remaining offering period. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock Options</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options granted to employees generally have a maximum term of <ix:nonNumeric contextRef="c-241" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" format="ixt-sec:durwordsen" id="f-814">ten years</ix:nonNumeric> and vest over <ix:nonNumeric contextRef="c-241" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-815">four years</ix:nonNumeric> from the date of grant, of which <ix:nonFraction unitRef="number" contextRef="c-242" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-816">25</ix:nonFraction>% vest at the end of <ix:nonNumeric contextRef="c-242" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-817">one year</ix:nonNumeric>, and <ix:nonFraction unitRef="number" contextRef="c-243" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-818">75</ix:nonFraction>% vest monthly over the remaining <ix:nonNumeric contextRef="c-243" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-819">three years</ix:nonNumeric>. We may grant options with different vesting terms from time to time. In January 2024, the Board approved the grants of stock options with a vesting term over <ix:nonNumeric contextRef="c-244" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-820">three years</ix:nonNumeric> from the date of grant, of which <ix:nonFraction unitRef="number" contextRef="c-245" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-821">33</ix:nonFraction>% vest at the end of <ix:nonNumeric contextRef="c-245" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-822">one year</ix:nonNumeric>, and <ix:nonFraction unitRef="number" contextRef="c-246" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-823">67</ix:nonFraction>% vest monthly over the remaining <ix:nonNumeric contextRef="c-246" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-824">two years</ix:nonNumeric>.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of <ix:nonNumeric contextRef="c-241" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" format="ixt-sec:durwordsen" id="f-825">three months</ix:nonNumeric> or the expiration of the option, whichever is earlier.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">90</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-3" continuedAt="f-796-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Stock Units (&#8220;RSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also grant employees RSUs, which generally vest over either a <ix:nonNumeric contextRef="c-247" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-826">three-year</ix:nonNumeric> period with <ix:nonFraction unitRef="number" contextRef="c-247" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-827">33</ix:nonFraction>% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a <ix:nonNumeric contextRef="c-248" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-828">four-year</ix:nonNumeric> period with <ix:nonFraction unitRef="number" contextRef="c-248" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-829">25</ix:nonFraction>% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee&#8217;s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance-contingent Restricted Stock Units (&#8220;PSUs&#8221;) and Performance Based Options (&#8220;PBOs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In prior years, the compensation committee of the Board approved grants of PBOs and PSUs to our executives, and solely in respect of non-executive employees, delegated to our CEO the authority to approve grants of PSUs. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in <ix:nonFraction unitRef="installment" contextRef="c-249" decimals="INF" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" format="ixt-sec:numwordsen" scale="0" id="f-830">two</ix:nonFraction> equal installments with <ix:nonFraction unitRef="number" contextRef="c-250" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-831">50</ix:nonFraction>% vesting upon achievement, as determined by the compensation committee of the Board, and the remaining <ix:nonFraction unitRef="number" contextRef="c-251" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-832">50</ix:nonFraction>% vesting on the first anniversary of achievement, in each case, subject to the recipient&#8217;s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to <ix:nonFraction unitRef="time" contextRef="c-252" decimals="INF" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" format="ixt-sec:numwordsen" scale="0" id="f-833">two</ix:nonFraction> times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in <ix:nonFraction unitRef="number" contextRef="c-253" decimals="INF" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" format="ixt:fixed-zero" scale="0" id="f-834">no</ix:nonFraction> shares being eligible to vest in respect of the PSUs and PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="shares" contextRef="c-252" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:fixed-zero" scale="0" id="f-835"><ix:nonFraction unitRef="shares" contextRef="c-254" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:fixed-zero" scale="0" id="f-836">No</ix:nonFraction></ix:nonFraction> PSUs and PBOs were granted in 2024 and 2023. In 2022, we awarded PSUs (&#8220;2022 PSUs&#8221;) and PBOs (&#8220;2022 PBOs&#8221;), each of which commence vesting based upon the achievement of various weighted performance go</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">als, including finance and corporate strategy, performance enzymes and biotherapeutics deliverables, research plans, and organizational development. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the first quarter of 2023, the compensation committee of the Board determined that the 2022 PSUs and 2022 PBOs performance goals had been achieved at</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> <ix:nonFraction unitRef="number" contextRef="c-255" decimals="3" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" scale="-2" id="f-837">85.0</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-256" decimals="3" name="cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" scale="-2" id="f-838">42.5</ix:nonFraction>% of the target level, respectively, and recognized stock-based compensation expenses accordingly. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, <ix:nonFraction unitRef="number" contextRef="c-257" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-839">50</ix:nonFraction>% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2023 and <ix:nonFraction unitRef="number" contextRef="c-258" decimals="2" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" scale="-2" id="f-840">50</ix:nonFraction>% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2024, in each case, subject to the recipient&#8217;s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation Expense</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="f-841" continuedAt="f-841-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-259" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-842">429</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-260" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-843">354</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-261" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-844">452</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-224" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-845">2,928</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-846">2,631</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-847">3,907</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-227" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-848">9,730</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-228" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-849">6,986</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-229" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-850">10,172</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-851">13,087</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-852">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-853">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">91</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-4" continuedAt="f-796-5"><ix:continuation id="f-841-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-241" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-854">6,423</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-855">3,962</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-263" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-856">4,167</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-264" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-857">4,717</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-265" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-858">4,447</ix:nonFraction></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-266" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-859">4,807</ix:nonFraction></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-267" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-860">247</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-268" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-861">1,649</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-862">3,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-863">1,357</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-254" decimals="-3" sign="-" name="us-gaap:ShareBasedCompensation" scale="3" id="f-864">112</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-865">2,289</ix:nonFraction></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">ESPP</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-239" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-866">343</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-272" decimals="-3" name="us-gaap:ShareBasedCompensation" scale="3" id="f-867">25</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:fixed-zero" scale="3" id="f-868">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-869">13,087</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-870">9,971</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="3" id="f-871">14,531</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the fourth quarter of 2024, we entered into Separation and Consulting Agreements with Sri Ryali, our former Chief Financial Officer, and <ix:nonFraction unitRef="executive" contextRef="c-274" decimals="INF" name="cdxs:NumberOfOtherFormerExecutive" format="ixt-sec:numwordsen" scale="0" id="f-872">two</ix:nonFraction> other former executives. Under these</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> agreements, the outstanding unvested options and awards for each of the <ix:nonFraction unitRef="executive" contextRef="c-274" decimals="INF" name="cdxs:NumberOfFormerExecutives" format="ixt-sec:numwordsen" scale="0" id="f-873">three</ix:nonFraction> former executives will continue to vest through the end of their consultancy period, which concludes on February 28, 2025. This modification resulted in a reduction of stock-based compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" sign="-" name="cdxs:ShareBasedPaymentArrangementExpenseIncreaseDecrease" scale="6" id="f-874">0.4</ix:nonFraction> million recognized in selling, general and administrative expenses during the year ended December&#160;31, 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 29, 2024, we entered into an Advisory Services Agreement with a former executive of the Company. Pursuant to the advisory agreement, the exercise period for the former executive&#8217;s vested stock options and performance-based options was also extended. This modification resulted in a stock-based compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="f-875">2.0</ix:nonFraction> million recognized in selling, general and administrative expenses during the year ended December&#160;31, 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the retirement of John Nicols, our former President and Chief Executive Officer, in August 2022, and the Transition and Separation Agreement between Mr. Nicols and the Company, certain supplementary modifications were made to Mr. Nicols' vested and unvested stock option and PBOs awards including voluntary forfeiture of certain unvested stock option and PBOs awards and the extension of the post-termination exercise period of certain vested stock option and PBOs awards. During the year ended December 31, 2022, we recorded a one-time, non-cash incremental compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="6" id="f-876">1.0</ix:nonFraction> million, net of the required reversal of previously recognized stock-based compensation expenses attributed to unvested shares, in selling, general and administrative expenses related to these stock option award modifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Grant Award Activities:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock Option Awards</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of stock options using the Black-Scholes-Merton option-pricing model based on the date of grant. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="f-877" continuedAt="f-877-1" escape="true">The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:</ix:nonNumeric></span><ix:continuation id="f-877-1" continuedAt="f-877-2"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-241" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-878">5.9</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-262" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-879">5.8</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-263" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-880">5.7</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-241" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-881">73.3</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-262" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-882">66.2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-263" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-883">62.1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-241" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-884">3.9</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-262" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-885">4.0</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-263" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-886">3.1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-241" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-887">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-262" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-888">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-263" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-889">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></ix:continuation></div><ix:continuation id="f-877-2" continuedAt="f-877-3"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes the weighted-average assumptions used to estimate the fair value of <ix:nonFraction unitRef="shares" contextRef="c-275" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-890">20,000</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-276" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="0" id="f-891">50,000</ix:nonFraction> shares of stock options granted to non-employees for services valued at $<ix:nonFraction unitRef="usd" contextRef="c-275" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="3" id="f-892">44</ix:nonFraction> thousand and $<ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" id="f-893">0.1</ix:nonFraction> million during the years ended December&#160;31, 2024 and 2023, respectively:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-277" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-894">5.8</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-278" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-895">5.8</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-277" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-896">74.7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-278" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-897">70.1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-277" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-898">4.4</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-278" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-899">4.7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-277" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-900">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-278" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-901">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">92</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-5" continuedAt="f-796-6"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of non-employee stock options granted respectively in 2024 and 2023 was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-275" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-902">2.19</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-276" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-903">1.05</ix:nonFraction>, respectively.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="f-904" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s stock option activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-27" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-905">2,935</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-27" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-906">8.90</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="3" id="f-907">2,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-19" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-908">8.90</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-909">410</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-19" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-910">2.33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-911">275</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-19" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-912">19.01</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-35" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-913">4,250</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-35" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-914">8.88</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="3" id="f-915">2,046</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-18" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-916">5.23</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-917">283</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-18" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-918">1.97</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-919">839</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-18" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-920">12.08</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-921">5,174</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-922">7.31</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:num-dot-decimal" scale="3" id="f-923">4,837</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-924">3.08</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-925">399</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-926">3.24</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-927">484</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-928">8.75</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-929"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-930"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-931">9,128</ix:nonFraction></ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-932">5.17</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:42.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.520%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average Remaining Contractual Term</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-933">9,128</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-934">5.17</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="f-935">6.3</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-936">8,497</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-937">2,840</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-938">8.05</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-939">4.5</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="3" id="f-940">402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-941">8,508</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-942">5.27</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-943">6.2</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-944">7,724</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of employee stock options granted in 2024, 2023, and 2022 were $<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-945">2.05</ix:nonFraction>, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-18" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-946">3.31</ix:nonFraction> and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-19" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-947">4.99</ix:nonFraction>, respectively. The total intrinsic value of options exercised in 2024, 2023, and 2022 were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-948">0.6</ix:nonFraction>&#160;million, $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-949">0.7</ix:nonFraction>&#160;million and $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:num-dot-decimal" scale="6" id="f-950">3.1</ix:nonFraction>&#160;million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">re was $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" scale="6" id="f-951">11.3</ix:nonFraction> million of unrecognized stock-based compensation, net of expected forfeitures, related to unvested stock options, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-241" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-952">2.3</ix:nonNumeric> years. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">93</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-6" continuedAt="f-796-7"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Awards (&#8220;RSAs&#8221;)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" id="f-953" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSA activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-279" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-954">80</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-279" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-955">17.53</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-280" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-956">159</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-280" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-957">7.53</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-280" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-958">58</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-280" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-959">18.42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-281" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-960">181</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-281" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-961">8.45</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-282" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-962">277</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-282" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-963">2.89</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-282" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-964">133</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-282" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-965">9.04</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-283" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-966">325</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-283" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-967">3.48</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-284" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-968">211</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-284" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-969">3.32</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-284" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-970">302</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-284" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-971">3.31</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-285" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-972">234</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-285" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-973">3.56</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSAs vested in fiscal years 2024, 2023 and 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> were $<ix:nonFraction unitRef="usd" contextRef="c-284" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-974">1.0</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-282" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-975">0.4</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-280" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-976">0.5</ix:nonFraction> million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was $<ix:nonFraction unitRef="usd" contextRef="c-285" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" scale="6" id="f-977">0.4</ix:nonFraction> million of unrecognized stock-based compensation cost related to non-vested RSAs, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-284" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-978">0.5</ix:nonNumeric> years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Units (&#8220;RSUs&#8221;)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="f-979" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-286" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-980">232</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-286" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-981">21.83</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-287" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-982">518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-287" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-983">17.46</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-287" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-984">106</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-287" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-985">21.21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-287" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-986">126</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-287" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-987">19.55</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-288" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-988">518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-288" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-989">18.15</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-289" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:num-dot-decimal" scale="3" id="f-990">1,049</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-289" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-991">5.24</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-289" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-992">204</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-289" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-993">18.42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-289" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-994">343</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-289" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-995">9.71</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-290" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-996">1,020</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-290" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-997">7.66</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-291" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:num-dot-decimal" scale="3" id="f-998">1,530</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-291" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-999">3.08</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-291" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-1000">383</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-291" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1001">8.96</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-291" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1002">157</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-291" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1003">4.66</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-292" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1004">2,010</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-292" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1005">4.16</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSUs vested in fiscal years 2024, 2023 and 2022 were </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-291" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-1006">1.1</ix:nonFraction> million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $<ix:nonFraction unitRef="usd" contextRef="c-289" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-1007">1.1</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-287" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-1008">1.8</ix:nonFraction> million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-292" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" scale="6" id="f-1009">4.2</ix:nonFraction> million of unrecognized stock-based compensation cost related to non-vested RSUs, which we expect to recognize over a weighted average period of <ix:nonNumeric contextRef="c-291" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-1010">1.8</ix:nonNumeric> years. </span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">94</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-7" continuedAt="f-796-8"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance-Contingent Restricted Stock Units (&#8220;PSUs&#8221;)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" id="f-1011" continuedAt="f-1011-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes PSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-293" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1012">128</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-293" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1013">21.24</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-269" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-1014">686</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-269" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1015">9.55</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-269" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-1016">107</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-269" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1017">20.52</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-269" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1018">40</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-269" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1019">19.93</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-294" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1020">667</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-294" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1021">9.41</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-268" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-1022">315</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-268" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1023">11.02</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-268" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1024">75</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-268" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1025">12.49</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-268" decimals="-3" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" scale="3" id="f-1026">15</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-268" decimals="2" name="cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" scale="0" id="f-1027">25.05</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-295" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1028">292</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-295" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1029">7.69</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-267" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-1030">248</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-267" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1031">7.69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-267" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1032">44</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-267" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1033">7.69</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-296" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:fixed-zero" scale="3" id="f-1034">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-296" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="f-1035">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of PSUs vested in the years ended December 31, 2024, 2023, and 2022 were $<ix:nonFraction unitRef="usd" contextRef="c-267" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-1036">0.9</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-268" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-1037">1.6</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-5" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" scale="6" id="f-1038">2.1</ix:nonFraction> million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was <ix:nonFraction unitRef="usd" contextRef="c-296" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" format="ixt:fixed-zero" scale="6" id="f-1039">nil</ix:nonFraction> of unrecognized stock-based compensation cost related to non-vested PSUs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance Based Options (&#8220;PBOs&#8221;) </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of PBOs using the Black-Scholes-Merton option-pricing model based on the date of grant. <ix:nonFraction unitRef="shares" contextRef="c-270" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt:fixed-zero" scale="0" id="f-1040">No</ix:nonFraction> PBOs were granted to employees for their services during the year ended December&#160;31, 2024. <ix:continuation id="f-877-3" continuedAt="f-877-4">The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:</ix:continuation></span><ix:continuation id="f-877-4"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:76.531%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:21.269%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-271" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1041">5.6</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-271" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1042">54.9</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-271" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1043">1.8</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-271" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1044">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></ix:continuation></div><ix:continuation id="f-1011-1" continuedAt="f-1011-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarizes PBOs activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number<br/>of<br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-297" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1045">1,840</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-297" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1046">4.11</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-271" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-1047">733</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-271" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1048">9.89</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-271" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1049">747</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-271" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1050">8.29</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-298" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1051">1,826</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-298" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1052">4.70</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-254" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1053">178</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-254" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1054">9.73</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-299" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1055">1,648</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-299" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1056">5.64</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-270" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1057">73</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-270" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1058">10.23</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-300" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1059">1,575</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-300" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1060">5.43</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span></div></ix:continuation></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">95</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-796-8"><ix:continuation id="f-1011-2"><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:42.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.385%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.520%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Remaining<br/>Contractual Term</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-300" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-1061">1,575</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-300" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-1062">10.62</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-270" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-1063">3.4</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-3" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" scale="3" id="f-1064">114</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-300" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-1065">1,575</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-300" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-1066">10.62</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-270" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-1067">3.4</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" scale="3" id="f-1068">114</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value of e</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">xercised PBOs for 2024, 2023 and 2022, was <ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:fixed-zero" scale="0" id="f-1069"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:fixed-zero" scale="0" id="f-1070"><ix:nonFraction unitRef="usd" contextRef="c-254" decimals="-5" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" format="ixt:fixed-zero" scale="0" id="f-1071">nil</ix:nonFraction></ix:nonFraction></ix:nonFraction>. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-5" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" format="ixt:fixed-zero" scale="0" id="f-1072">nil</ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of unrecognized stock-based compensation cost related to non-vested PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Employee Stock Purchase Plan (&#8220;ESPP&#8221;) </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" id="f-1073" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-239" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1074">1.2</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-272" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1075">0.4</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-239" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1076">89.4</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-272" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1077">89.6</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-239" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1078">4.6</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-272" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1079">5.3</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-239" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1080">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-272" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1081">0.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_121"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 10. <ix:nonNumeric contextRef="c-1" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="f-1082" continuedAt="f-1082-1" escape="true">Capital Stock</ix:nonNumeric></span></div><ix:continuation id="f-1082-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Sales Agreements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we filed a Registration Statement on Form S-3 with the SEC (the &#8220;2021 Registration Statement&#8221;), that automatically became effective upon its filing, under which we were permitted to sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to the 2021 Registration Statement. Pursuant to that post-effective amendment, we registered an aggregate $<ix:nonFraction unitRef="usd" contextRef="c-301" decimals="-5" name="cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount" format="ixt:num-dot-decimal" scale="6" id="f-1083">200.0</ix:nonFraction>&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement (&#8220;EDA&#8221;) with Piper Sandler &amp; Co (&#8220;PSC&#8221;), under which PSC, as our exclusive agent, at our discretion and at such times that we determined from time to time, may have sold over a <ix:nonNumeric contextRef="c-302" name="cdxs:SaleOfStockPeriod" format="ixt-sec:durwordsen" id="f-1084">three-year</ix:nonNumeric> period from the execution of the EDA up to a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-303" decimals="-5" name="cdxs:SaleOfStockValueOfSharesForIssuance" format="ixt:num-dot-decimal" scale="6" id="f-1085">50.0</ix:nonFraction>&#160;million of shares of our common stock. Under the terms of the EDA, PSC was permitted to sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We were not required to sell any shares at any time during the term of the EDA. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On April 24, 2024, we terminated the EDA.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="INF" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:fixed-zero" scale="0" id="f-1086">No</ix:nonFraction> shares of our common stock were issued and sold pursuant to the EDA during the year ended December 31, 2024. During the year ended December&#160;31, 2023, <ix:nonFraction unitRef="shares" contextRef="c-18" decimals="INF" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:num-dot-decimal" scale="0" id="f-1087">3,079,421</ix:nonFraction> shares of our common stock were issued and sold pursuant to the EDA. During the year ended December&#160;31, 2023, we received gross proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="cdxs:SaleOfStockConsiderationReceivedOnTransactionGross" scale="6" id="f-1088">8.7</ix:nonFraction> million or $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:SaleOfStockConsiderationReceivedOnTransaction" scale="6" id="f-1089">7.9</ix:nonFraction> million in net proceeds after PSC's commissions and direct offering expenses of $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:PaymentsOfStockIssuanceCosts" scale="6" id="f-1090">0.7</ix:nonFraction> million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 2, 2024, we entered into a Controlled Equity Offering&#8480; Sales Agreement (the &#8220;Cantor Sales Agreement&#8221;) with Cantor Fitzgerald &amp; Co., as sales agent (&#8220;Cantor&#8221;), under which Cantor, at our discretion and at such times that we may determine from time to time, may sell up to a maximum of $<ix:nonFraction unitRef="usd" contextRef="c-304" decimals="-5" name="us-gaap:SaleOfStockConsiderationReceivedOnTransaction" format="ixt:num-dot-decimal" scale="6" id="f-1091">75.0</ix:nonFraction>&#160;million of shares of our common stock. Under the terms of the Cantor Sales Agreement, Cantor may sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act. On May 2, 2024, we filed a registration statement on Form S-3 registering the offer and sale of these shares under the Securities Act which became effective on May 14, 2024. We will pay a commission of up to <ix:nonFraction unitRef="number" contextRef="c-305" decimals="3" name="cdxs:SaleOfStockCommissionFeePercent" scale="-2" id="f-1092">3.0</ix:nonFraction>% of gross sales proceeds of any common stock sold under the Cantor Sales Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, <ix:nonFraction unitRef="shares" contextRef="c-306" decimals="INF" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:num-dot-decimal" scale="0" id="f-1093">10,440,000</ix:nonFraction> shares of our common stock were issued and sold pursuant to the Cantor Sales Agreement. During the year ended December&#160;31, 2024, we received gross proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-306" decimals="-5" name="cdxs:SaleOfStockConsiderationReceivedOnTransactionGross" scale="6" id="f-1094">31.3</ix:nonFraction> million or $<ix:nonFraction unitRef="usd" contextRef="c-306" decimals="-5" name="us-gaap:SaleOfStockConsiderationReceivedOnTransaction" scale="6" id="f-1095">29.7</ix:nonFraction> million in net proceeds after Cantor&#8217;s commissions and direct offering expenses of $<ix:nonFraction unitRef="usd" contextRef="c-306" decimals="-5" name="us-gaap:PaymentsOfStockIssuanceCosts" scale="6" id="f-1096">1.6</ix:nonFraction> million. As of December&#160;31, 2024, $<ix:nonFraction unitRef="usd" contextRef="c-307" decimals="-5" name="cdxs:SaleOfStockValueOfSharesForIssuance" scale="6" id="f-1097">43.7</ix:nonFraction> million remained available for sale under the Cantor Sales Agreement.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">96</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_124"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 11. <ix:nonNumeric contextRef="c-1" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="f-1098" continuedAt="f-1098-1" escape="true">401(k) Plan</ix:nonNumeric></span></div><ix:continuation id="f-1098-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2005, we implemented a 401(k) Plan covering certain employees. Currently, all of our United States based employees over the age of <ix:nonFraction unitRef="security" contextRef="c-308" decimals="INF" name="cdxs:DefinedContributionPlanParticipantEligibilityAge" scale="0" id="f-1099">18</ix:nonFraction> are eligible to participate in the 401(k) Plan. Under the 401(k) Plan, eligible employees may elect to reduce their current compensation up to a certain annual limit and contribute these amounts to the 401(k) Plan. We may make matching or other contributions to the 401(k) Plan on behalf of eligible employees. We recorded employer matching contributions expense o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:DefinedContributionPlanCostRecognized" scale="6" id="f-1100">1.2</ix:nonFraction> million,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:DefinedContributionPlanCostRecognized" scale="6" id="f-1101">1.4</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:DefinedContributionPlanCostRecognized" scale="6" id="f-1102">1.6</ix:nonFraction> million in the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_127"></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 12. <ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxDisclosureTextBlock" id="f-1103" continuedAt="f-1103-1" escape="true">Income Taxes</ix:nonNumeric></span></div><ix:continuation id="f-1103-1" continuedAt="f-1103-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" id="f-1104" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our loss before provision for income taxes were as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1105">65,231</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1106">76,169</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1107">33,269</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" id="f-1108">11</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" id="f-1109">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" id="f-1110">47</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1111">65,242</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1112">76,171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1113">33,316</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax provision for the year ended December&#160;31, 2024 and 2023 consists primarily of current year state and foreign income taxes. The tax provision for the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 2022 consists primarily of taxes attributable to foreign operations. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="f-1114" continuedAt="f-1114-1" escape="true">The components of the provision for income taxes are as follows (in thousands):&#160;</ix:nonNumeric><br/></span><ix:continuation id="f-1114-1"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current provision:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="f-1115">6</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="f-1116">27</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="f-1117">141</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" id="f-1118">42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" id="f-1119">42</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" id="f-1120">142</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current provision </span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="f-1121">36</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="f-1122">69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" id="f-1123">283</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred benefit:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" id="f-1124">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:fixed-zero" scale="3" id="f-1125">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" id="f-1126">7</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred benefit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="f-1127">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:fixed-zero" scale="3" id="f-1128">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" id="f-1129">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1130">34</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1131">69</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1132">276</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></ix:continuation></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="f-1133" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax benefit at federal statutory rate</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="3" id="f-1134">13,701</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="3" id="f-1135">15,995</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:num-dot-decimal" scale="3" id="f-1136">6,996</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-1137">3,133</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-1138">2,208</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" id="f-1139">494</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="f-1140">419</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" scale="3" id="f-1141">925</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxReconciliationTaxCreditsResearch" format="ixt:num-dot-decimal" scale="3" id="f-1142">1,793</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign operations taxed at different rates</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" format="ixt:fixed-zero" scale="3" id="f-1143">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" format="ixt:fixed-zero" scale="3" id="f-1144">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" scale="3" id="f-1145">78</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1146">1,930</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1147">1,967</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" scale="3" id="f-1148">239</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other nondeductible items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" scale="3" id="f-1149">108</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" scale="3" id="f-1150">438</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" sign="-" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther" scale="3" id="f-1151">238</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" scale="3" id="f-1152">306</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" scale="3" id="f-1153">152</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" scale="3" id="f-1154">80</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1155">15,159</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1156">16,640</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1157">9,400</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1158">34</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1159">69</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" id="f-1160">276</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred income taxes reflect the net tax effects of (a)&#160;temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes, and (b)&#160;operating losses and tax credit carryforwards.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">97</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1103-2" continuedAt="f-1103-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="f-1161" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1162">82,925</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1163">72,586</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1164">17,660</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1165">16,412</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenues</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsDeferredIncome" scale="3" id="f-1166">48</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsDeferredIncome" scale="3" id="f-1167">176</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1168">4,786</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1169">4,445</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserves and accruals</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" format="ixt:num-dot-decimal" scale="3" id="f-1170">2,650</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" format="ixt:num-dot-decimal" scale="3" id="f-1171">2,774</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="f-1172">830</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment" scale="3" id="f-1173">457</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" scale="3" id="f-1174">244</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" scale="3" id="f-1175">532</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capital losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsCapitalLossCarryforwards" scale="3" id="f-1176">452</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsCapitalLossCarryforwards" scale="3" id="f-1177">424</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D Capitalization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" format="ixt:num-dot-decimal" scale="3" id="f-1178">28,471</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" format="ixt:num-dot-decimal" scale="3" id="f-1179">26,821</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain/loss</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsUnrealizedCurrencyLosses" scale="3" id="f-1180">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsUnrealizedCurrencyLosses" format="ixt:fixed-zero" scale="3" id="f-1181">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease liability</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DeferredTaxAssetsLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1182">7,445</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cdxs:DeferredTaxAssetsLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1183">3,608</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsOther" format="ixt:num-dot-decimal" scale="3" id="f-1184">4,362</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsOther" format="ixt:num-dot-decimal" scale="3" id="f-1185">2,542</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax assets:</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-1186">149,875</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-1187">130,777</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1188">142,994</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1189">127,835</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DeferredTaxLiabilitiesRightOfUseAssets" format="ixt:num-dot-decimal" scale="3" id="f-1190">6,895</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cdxs:DeferredTaxLiabilitiesRightOfUseAssets" format="ixt:num-dot-decimal" scale="3" id="f-1191">2,958</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax liabilities:</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1192">6,895</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1193">2,958</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net deferred tax liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredTaxLiabilities" scale="3" id="f-1194">14</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredTaxLiabilities" scale="3" id="f-1195">16</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC 740 requires that the tax benefit of NOLs, temporary differences and credit carryforwards be recorded as an asset to the extent that management assesses that realization is &#8220;more likely than not.&#8221; Realization of the future tax benefits is dependent on our ability to generate sufficient taxable income within the carryforward period. Because of our history of operating losses, management believes that recognition of the deferred tax assets arising from the above-mentioned future tax benefits is currently not more likely than not to be realized and, accordingly, has provided a valuation allowance against our deferred tax assets. Accordingly, the net deferred tax assets in all our jurisdictions have been fully reserved by a valuation allowance. The net valuation allowance increased by</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" scale="6" id="f-1196">15.2</ix:nonFraction> million d</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">uring the year ended December&#160;31, 2024, increased by $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" format="ixt:num-dot-decimal" scale="6" id="f-1197">16.7</ix:nonFraction>&#160;million during the year ended December&#160;31, 2023, and increased by $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-5" name="us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount" format="ixt:num-dot-decimal" scale="6" id="f-1198">9.4</ix:nonFraction>&#160;million during the year ended December&#160;31, 2022. At such time as it is determined that it is more likely than not that the deferred tax assets are realizable, the valuation allowance will be reduced.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock" id="f-1199" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2024 (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Expiration<br/>Years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-309" decimals="-3" name="us-gaap:OperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1200">182,918</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026-2037</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-309" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" format="ixt:num-dot-decimal" scale="3" id="f-1201">158,554</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-310" decimals="-3" name="us-gaap:OperatingLossCarryforwards" format="ixt:num-dot-decimal" scale="3" id="f-1202">175,040</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028-2044</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-309" decimals="-3" name="us-gaap:TaxCreditCarryforwardAmount" format="ixt:num-dot-decimal" scale="3" id="f-1203">19,073</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2024-2044</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-310" decimals="-3" name="us-gaap:TaxCreditCarryforwardAmount" format="ixt:num-dot-decimal" scale="3" id="f-1204">20,791</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Current U.S. federal and California tax laws include substantial restrictions on the utilization of NOLs and tax credit carryforwards in the event of an ownership change of a corporation. Accordingly, the Company's ability to utilize NOLs and tax credit carryforwards may be limited as a result of such ownership changes</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We performed an analysis in 2024 and determined that there was not a limitation that would result in the expiration of carryforwards before they are utilized.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">98</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1103-3"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply the provisions of ASC 740 to account for uncertain income tax</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">es. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="f-1205" continuedAt="f-1205-1" escape="true">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;</ix:nonNumeric><br/></span><ix:continuation id="f-1205-1"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1206">20,204</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1207">18,571</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1208">15,261</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions based on tax positions related to current year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1209">1,332</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1210">2,164</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1211">3,553</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions to tax position of prior years</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1212">82</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:fixed-zero" scale="3" id="f-1213">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:fixed-zero" scale="3" id="f-1214">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reductions to tax position of prior years</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" format="ixt:fixed-zero" scale="3" id="f-1215">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1216">531</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1217">243</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1218">21,618</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1219">20,204</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1220">18,571</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/></tr></table></ix:continuation></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize interest and penalties as a co</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mponent of our income tax expense. Total interest and penalties recognized in the consolidated statements of operations were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" scale="3" id="f-1221">42</ix:nonFraction> thousand, $<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" scale="3" id="f-1222">42</ix:nonFraction> thousand and $<ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" scale="3" id="f-1223">42</ix:nonFraction> thousand in 2024, 2023 and 2022, respectively. Total penalties and interest recognized in the balance sheet was $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="6" id="f-1224">0.6</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="6" id="f-1225">0.6</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" scale="6" id="f-1226">0.5</ix:nonFraction> million as of December&#160;31, 2024, 2023 and 2022, respectively. The total unrecognized tax benefits that, if recognized currently, would impact our company&#8217;s effective tax rate were $<ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" scale="6" id="f-1227"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" scale="6" id="f-1228"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" scale="6" id="f-1229">0.3</ix:nonFraction></ix:nonFraction></ix:nonFraction> million as of December&#160;31, 2024, 2023 and 2022. We do not expect any material changes to our uncertain tax positions within the next 12 months. We are not subject t</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">o examination by United States federal or state tax authorities for years prior to 2002 and foreign tax authorities for years prior to 2014.</span></div></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_130"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 13. <ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="f-1230" continuedAt="f-1230-1" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="f-1230-1" continuedAt="f-1230-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Operating Leases</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we occupy approximately <ix:nonFraction unitRef="sqft" contextRef="c-4" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1231">77,300</ix:nonFraction> square feet of office and laboratory space in multiple buildings within the same business park operated by Metropolitan Life Insurance Company (&#8220;MetLife&#8221;). Our lease agreement with MetLife (&#8220;RWC Lease&#8221;) includes approximately <ix:nonFraction unitRef="sqft" contextRef="c-311" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1232">28,200</ix:nonFraction> square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#8220;200/220 Penobscot Space&#8221;) and approximately <ix:nonFraction unitRef="sqft" contextRef="c-312" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1233">37,900</ix:nonFraction> square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#8220;400 Penobscot Space&#8221;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#8220;Penobscot Space&#8221;), and approximately <ix:nonFraction unitRef="sqft" contextRef="c-313" decimals="-2" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-1234">11,200</ix:nonFraction> square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#8220;Chesapeake Space&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2003 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In December 2024, we entered into a Ninth Amendment to the Lease (the &#8220;Ninth Amendment&#8221;) with MetLife with respect to the Penobscot Space and the Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Ninth Amendment, the term of the lease of for both the Penobscot Space and the Chesapeake Space has been extended through August 2032. We have <ix:nonFraction unitRef="renewal_option" contextRef="c-314" decimals="INF" name="cdxs:LesseeOperatingLeaseNumberOfRenewalOptions" format="ixt-sec:numwordsen" scale="0" id="f-1235">one</ix:nonFraction> (1) option to extend the term of the lease for the Penobscot Space for five (<ix:nonNumeric contextRef="c-315" name="us-gaap:LesseeOperatingLeaseRenewalTerm" format="ixt-sec:duryear" id="f-1236">5</ix:nonNumeric>) years, and <ix:nonFraction unitRef="renewal_option" contextRef="c-316" decimals="INF" name="cdxs:LesseeOperatingLeaseNumberOfRenewalOptions" format="ixt-sec:numwordsen" scale="0" id="f-1237">one</ix:nonFraction> (1) separate option to extend the term of the lease for the Chesapeake Space for five (<ix:nonNumeric contextRef="c-317" name="us-gaap:LesseeOperatingLeaseRenewalTerm" format="ixt-sec:duryear" id="f-1238">5</ix:nonNumeric>) years. The Ninth Amendment provided a net tenant improvement allowance of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="cdxs:AllowanceForTenantImprovements" scale="6" id="f-1239">3.0</ix:nonFraction> million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the lease extension, the Company remeasured the lease liability and adjusted the corresponding right-of-use asset based on the updated lease payments. The impact of this remeasurement, which included a non-cash increase in both the lease liability and right-of-use asset, was recorded as of December 31, 2024.</span></div><ix:nonNumeric contextRef="c-1" name="cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" id="f-1240" continuedAt="f-1240-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2024 and the balance as of December&#160;31, 2024, including the changes during the period (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:77.701%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.369%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Right-of-use Assets - Operating Lease, net</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at January 1, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-1241">13,137</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1242">3,184</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Addition due to lease modification</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:OperatingLeaseRightOfUseAssetDueToLeaseModification" format="ixt:num-dot-decimal" scale="3" id="f-1243">18,747</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at December&#160;31, 2024</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-1244">28,700</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">99</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1230-2" continuedAt="f-1230-3"><ix:continuation id="f-1240-1"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:77.701%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.369%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Lease Obligations - Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at January 1, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1245">16,024</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1246">4,727</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest accretion</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:OperatingLeaseInterestAccretion" scale="3" id="f-1247">946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Addition due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cdxs:OperatingLeaseWriteOffDueToLeaseModification" format="ixt:num-dot-decimal" scale="3" id="f-1248">18,747</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at December&#160;31, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1249">30,990</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:continuation><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our previous San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#8220;Assignment Agreement&#8221;) with Vaxcyte, Inc. (&#8220;Vaxcyte&#8221;) to assign to Vaxcyte all of the Company&#8217;s right, title and interest in, under and to the San Carlos facility and the related Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE-San Francisco No. 63, LLC (&#8220;ARE&#8221;) entered into a Consent to Assignment and First Amendment pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#8217;s interest as tenant in the lease. The effective date of the assignment was October 1, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the Assignment Agreement, the Company remeasured the lease obligation for the San Carlos facility to its present value of $<ix:nonFraction unitRef="usd" contextRef="c-318" decimals="-5" name="us-gaap:OperatingLeaseLiability" scale="6" id="f-1250">3.1</ix:nonFraction> million and wrote off the remaining lease liability of $<ix:nonFraction unitRef="usd" contextRef="c-319" decimals="-5" name="cdxs:OperatingLeaseWriteOffDueToLeaseModification" scale="6" id="f-1251">19.6</ix:nonFraction> million and the corresponding right of use asset balance. Simultaneously, the Company determined that indicators of impairment existed because the lease assignment impacts the utilization of the related right of use assets and leasehold improvements in the San Carlos facility, and therefore performed a recoverability test by estimating future undiscounted net cash flows expected to be generated from the use of these assets. As there were no substantial future cash inflows associated with these assets, the carrying values of these assets were deemed unrecoverable. As a result, during the third quarter of 2023, the Company recognized a non-cash impairment charge of $<ix:nonFraction unitRef="usd" contextRef="c-320" decimals="-5" name="us-gaap:AssetImpairmentCharges" scale="6" id="f-1252">7.7</ix:nonFraction> million, of which $<ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-5" name="us-gaap:ImpairmentOfLeasehold" scale="6" id="f-1253">4.7</ix:nonFraction> million was related to leasehold improvements and $<ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-5" name="us-gaap:OperatingLeaseImpairmentLoss" scale="6" id="f-1254">3.0</ix:nonFraction> million for the right of use assets, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of the plan, the Company entered into agreements to sell certain laboratory equipment previously located in the San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos facility to Vaxcyte. These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based on Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeds fair value less costs to sell, which resulted in a write-down of $<ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-5" name="us-gaap:AssetImpairmentCharges" scale="6" id="f-1255">1.5</ix:nonFraction> million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of&#160;$<ix:nonFraction unitRef="usd" contextRef="c-321" decimals="-5" name="us-gaap:RestrictedCashAndInvestmentsNoncurrent" scale="6" id="f-1256"><ix:nonFraction unitRef="usd" contextRef="c-322" decimals="-5" name="us-gaap:RestrictedCashAndInvestmentsNoncurrent" scale="6" id="f-1257">1.1</ix:nonFraction></ix:nonFraction> million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of&#160;December&#160;31, 2024 and 2023, and are recorded as non-current restricted cash on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to restore certain areas of the Redwood City facility that we are renting to its original form. We are expensing the asset retirement obligation over the term of the Redwood City lease. We review the estimated obligation each reporting period and make adjustments if our estimates change. We recorded asset retirement obligations of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-5" name="us-gaap:AssetRetirementObligation" format="ixt:num-dot-decimal" scale="6" id="f-1258"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-5" name="us-gaap:AssetRetirementObligation" format="ixt:num-dot-decimal" scale="6" id="f-1259">0.3</ix:nonFraction></ix:nonFraction>&#160;million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2024 and 2023, which are included in other liabilities on the consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease and other information</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LeaseCostTableTextBlock" id="f-1260" continuedAt="f-1260-1" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cdxs:FinanceLeaseCost" format="ixt:fixed-zero" scale="3" id="f-1261">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="cdxs:FinanceLeaseCost" format="ixt:fixed-zero" scale="3" id="f-1262">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="cdxs:FinanceLeaseCost" scale="3" id="f-1263">18</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1264">4,130</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1265">6,310</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:OperatingLeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1266">7,321</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term lease costs</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ShortTermLeaseCost" format="ixt:fixed-zero" scale="3" id="f-1267">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:ShortTermLeaseCost" format="ixt:fixed-zero" scale="3" id="f-1268">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:ShortTermLeaseCost" scale="3" id="f-1269">40</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1270">4,130</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1271">6,310</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:LeaseCost" format="ixt:num-dot-decimal" scale="3" id="f-1272">7,379</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr style="height:3pt"><td colspan="12" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> The Company had <ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:VariableLeaseCost" format="ixt:fixed-zero" scale="0" id="f-1273"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:VariableLeaseCost" format="ixt:fixed-zero" scale="0" id="f-1274"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:VariableLeaseCost" format="ixt:fixed-zero" scale="0" id="f-1275">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> variable lease costs.</span></div></ix:nonNumeric></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">100</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1230-3" continuedAt="f-1230-4"><ix:continuation id="f-1260-1"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amounts included in the measurement of lease obligations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:48.169%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.423%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1276">4,727</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1277">9,897</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="3" id="f-1278">6,506</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Lease</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-4" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-1279">7.6</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-1280">7.0</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="f-1281" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:82.379%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.421%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ending December 31,</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="f-1282">4,868</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" scale="3" id="f-1283">5,014</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" scale="3" id="f-1284">4,053</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" scale="3" id="f-1285">5,400</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:num-dot-decimal" scale="3" id="f-1286">5,365</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="f-1287">15,695</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total minimum lease payments </span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="3" id="f-1288">40,395</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" format="ixt:num-dot-decimal" scale="3" id="f-1289">9,405</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1290">30,990</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr><tr><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reconciliation of operating lease liabilities as shown within the consolidated balance sheets:</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-1291">2,827</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-1292">28,163</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="3" id="f-1293">30,990</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Commitments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work. As of December 31, 2024, the future minimum payments that we expect to pay, including potential obligations under services agreements subject to risk of cancellation by us, is minimal.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Credit Facility</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 30, 2017, we entered into a credit facility (the &#8220;Credit Facility&#8221;) with Western Alliance Bank consisting of term loans (&#8220;Term Debt&#8221;) up to $<ix:nonFraction unitRef="usd" contextRef="c-323" decimals="-5" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" scale="6" id="f-1294">10.0</ix:nonFraction> million, and advances under a revolving line of credit of up to $<ix:nonFraction unitRef="usd" contextRef="c-324" decimals="-5" name="us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity" scale="6" id="f-1295">5.0</ix:nonFraction> million with an accounts receivable borrowing base of <ix:nonFraction unitRef="number" contextRef="c-325" decimals="2" name="cdxs:LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" scale="-2" id="f-1296">80</ix:nonFraction>% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2022. In March 2023, we terminated the Credit Facility with Western Alliance Bank. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Legal Proceedings</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">101</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1230-4"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are currently not a party to any material pending litigation or other material legal proceedings that management believes could have a material adverse effect on our financial statements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Indemnifications</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were <ix:nonFraction unitRef="usd" contextRef="c-326" decimals="-5" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" format="ixt:fixed-zero" scale="0" id="f-1297"><ix:nonFraction unitRef="usd" contextRef="c-327" decimals="-5" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" format="ixt:fixed-zero" scale="0" id="f-1298"><ix:nonFraction unitRef="usd" contextRef="c-328" decimals="-5" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" format="ixt:fixed-zero" scale="0" id="f-1299">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> accruals for expenses related to indemnification issues for any periods presented.</span></div></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_145"></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 14. <ix:nonNumeric contextRef="c-1" name="us-gaap:DebtDisclosureTextBlock" id="f-1300" continuedAt="f-1300-1" escape="true">Debt</ix:nonNumeric></span></div><ix:continuation id="f-1300-1" continuedAt="f-1300-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Innovatus Loan Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024 (the &#8220;Closing Date&#8221;), we entered into a </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-329" name="us-gaap:DebtInstrumentTerm" format="ixt-sec:durwordsen" id="f-1301" continuedAt="f-1301-1">five</ix:nonNumeric></span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-1301-1">-year</ix:continuation> term loan and security agreement (the &#8220;Loan Agreement&#8221;) with Innovatus Life Sciences Lending Fund I, LP (&#8220;Innovatus&#8221;), an affiliate of Innovatus Capital Partners, LLC, for an aggregate principal amount of up to </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-330" decimals="-5" name="us-gaap:DebtInstrumentFaceAmount" scale="6" id="f-1302">40.0</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and with a maturity date of February 13, 2029 (the &#8220;Innovatus Loan&#8221;). The Innovatus Loan consists of <ix:nonFraction unitRef="tranche" contextRef="c-330" decimals="INF" name="cdxs:DebtInstrumentNumberOfTranches" format="ixt-sec:numwordsen" scale="0" id="f-1303">two</ix:nonFraction> tranches, of which the first tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-331" decimals="-5" name="us-gaap:DebtInstrumentFaceAmount" scale="6" id="f-1304">30.0</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> was funded on February 13, 2024. We will be eligible to draw down the second tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-332" decimals="-5" name="us-gaap:DebtInstrumentFaceAmount" scale="6" id="f-1305">10.0</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> upon achievement of certain milestones including certain pre-specified revenue thresholds and subject to a payment of a facility fee equal to <ix:nonFraction unitRef="number" contextRef="c-333" decimals="3" name="cdxs:DebtInstrumentFacilityFeePercent" scale="-2" id="f-1306">1.00</ix:nonFraction>% of the amount of such term loan. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The floating per annum interest rate of the Innovatus Loan is equal to </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">the sum of (a) the greater of (i) prime rate published in the Money Rates section of the Wall Street Journal and (ii) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><span style="-sec-ix-hidden:f-1307"><ix:nonFraction unitRef="number" contextRef="c-330" decimals="4" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" scale="-2" id="f-1308">7.50</ix:nonFraction></span>%</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, plus (b) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><span style="-sec-ix-hidden:f-1310"><ix:nonFraction unitRef="number" contextRef="c-329" decimals="4" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" id="f-1309">3.25</ix:nonFraction></span>%; provided that, at the election of the Company, up to <ix:nonFraction unitRef="number" contextRef="c-330" decimals="3" name="cdxs:DebtInstrumentInterestPaidInKind" scale="-2" id="f-1311">2.0</ix:nonFraction>% of such rate shall be payable in-kind until the third anniversary of the closing date. The Company is required to make monthly interest-only payments through February 1, 2027 (with the ability to extend the interest-only period through February 1, 2028 upon the achievement of certain pre-specified financial milestones), after which the Company is required to make monthly amortizing payments, with the remaining balance of the principal plus accrued and unpaid interest due at maturity. <ix:nonFraction unitRef="number" contextRef="c-330" decimals="3" name="cdxs:DebtInstrumentInterestPaidInKind" scale="-2" id="f-1312">2.0</ix:nonFraction>% of the interest is payable in-kind for the first <ix:nonNumeric contextRef="c-329" name="cdxs:DebtInstrumentInterestPayableTerm" format="ixt-sec:durwordsen" id="f-1313">three years</ix:nonNumeric> of the term by increasing the principal balance. Prepayments of the loan, in whole or in part, will be subject to an early prepayment fee which ranges between <ix:nonFraction unitRef="number" contextRef="c-336" decimals="3" name="cdxs:EarlyRepaymentFeePercentage" scale="-2" id="f-1314">3.0</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-337" decimals="3" name="cdxs:EarlyRepaymentFeePercentage" scale="-2" id="f-1315">1.0</ix:nonFraction>% and declines each year until the third anniversary date of the Closing Date, after which no prepayment fee is required. The Company is also required to pay an exit fee upon any payment or prepayment equal to <ix:nonFraction unitRef="number" contextRef="c-330" decimals="3" name="cdxs:DebtInstrumentExitFeePercent" scale="-2" id="f-1316">3.0</ix:nonFraction>% of the aggregate principal amount of the tranches funded under the Innovatus Loan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Innovatus Loan contains customary representations and warranties and covenants, subject to customary carve outs, and includes financial covenants related to liquidity and net product revenue, with the latter beginning with the period ended December 31, 2024. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Innovatus Loan is secured by perfected first priority liens on the Company's assets, and the Loan Agreement includes a negative pledge by the Company which prohibits the Company from permitting liens to be placed upon the Company's intellectual property in favor of any party other than Innovatus.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the issuance of the Innovatus Loan, we recorded a debt discount of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-330" decimals="-5" name="us-gaap:DebtInstrumentUnamortizedDiscount" scale="6" id="f-1317">1.3</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and capitalized debt issuance costs of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-330" decimals="-5" name="us-gaap:UnamortizedDebtIssuanceExpense" scale="6" id="f-1318">0.6</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The discount and issuance costs will be amortized over the life of the Innovatus Loan. Interest expense for the Innovatus Loan for the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024 </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-338" decimals="-5" name="us-gaap:InterestExpenseDebt" scale="6" id="f-1319">3.5</ix:nonFraction> million,</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and is inclusive of non-cash amortization of the debt discount, debt issuance costs, payable in-kind interest, and accretion of final payment. The carrying amount of the Innovatus Loan approximates fair value given its recent issuance and the interest rate is based on the current prime rate. The effective interest rate for the Innovatus Loan was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="number" contextRef="c-339" decimals="3" name="us-gaap:DebtInstrumentInterestRateEffectivePercentage" scale="-2" id="f-1320">13.1</ix:nonFraction>%</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, in connection with entering into the Innovatus Loan, we entered into a Warrant Agreement with Innovatus on February 13, 2024 and issued to Innovatus a warrant to purchase an aggregate of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonFraction unitRef="shares" contextRef="c-340" decimals="0" name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" format="ixt:num-dot-decimal" scale="0" id="f-1321">424,028</ix:nonFraction></span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of the Company&#8217;s common stock at an exercise price of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usdPerShare" contextRef="c-340" decimals="2" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" scale="0" id="f-1322">2.83</ix:nonFraction></span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> per share. The warrants may be exercised on a cashless basis, and are immediately exercisable through the 10th anniversary of the issuance date. At the time of issuance, the Company determined the estimated fair value of the warrants of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-5" name="cdxs:ClassOfWarrantOrRightFairValue" scale="6" id="f-1323">0.9</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> using the Black-Scholes model. As the warrants represent a freestanding equity instrument, the Company recorded the fair value of the warrants in additional paid-in capital during the first quarter of 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">102</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1300-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDebtInstrumentsTextBlock" id="f-1324" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company accounts for the amortization of the debt discount and issuance costs utilizing the effective interest method. Long-term debt consisted of the following at December&#160;31, 2024 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:79.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.469%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Face value of debt</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DebtInstrumentFaceAmount" format="ixt:num-dot-decimal" scale="3" id="f-1325">30,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: payment in-kind interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DebtInstrumentPaymentInKindInterest" scale="3" id="f-1326">483</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: amortized exit fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DebtInstrumentAmortizedExitFee" scale="3" id="f-1327">125</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt discount</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DebtInstrumentUnamortizedDiscount" format="ixt:num-dot-decimal" scale="3" id="f-1328">1,151</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnamortizedDebtIssuanceExpense" scale="3" id="f-1329">552</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total long-term debt</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebt" format="ixt:num-dot-decimal" scale="3" id="f-1330">28,905</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" id="f-1331" escape="true"><div style="margin-bottom:9pt;margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The future principal payments under the Innovatus Loan are as follows (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:79.747%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.469%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ending December 31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" format="ixt:fixed-zero" scale="3" id="f-1332">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" format="ixt:fixed-zero" scale="3" id="f-1333">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" format="ixt:num-dot-decimal" scale="3" id="f-1334">13,264</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" format="ixt:num-dot-decimal" scale="3" id="f-1335">15,917</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" format="ixt:num-dot-decimal" scale="3" id="f-1336">2,653</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total principal payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DebtInstrumentCarryingAmount" format="ixt:num-dot-decimal" scale="3" id="f-1337">31,834</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: amortized exit fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DebtInstrumentAmortizedExitFee" scale="3" id="f-1338">125</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: uncapitalized payment in-kind interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cdxs:DebtInstrumentUncapitalizedPaymentInKindInterest" format="ixt:num-dot-decimal" scale="3" id="f-1339">1,351</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DebtInstrumentUnamortizedDiscount" format="ixt:num-dot-decimal" scale="3" id="f-1340">1,151</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance costs</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnamortizedDebtIssuanceExpense" scale="3" id="f-1341">552</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total long-term debt</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:LongTermDebt" format="ixt:num-dot-decimal" scale="3" id="f-1342">28,905</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_136"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 15. <ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingDisclosureTextBlock" id="f-1343" continuedAt="f-1343-1" escape="true">Segment, Geographical and Other Revenue Information</ix:nonNumeric></span></div><ix:continuation id="f-1343-1" continuedAt="f-1343-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingPolicyPolicyTextBlock" id="f-1344" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as <ix:nonFraction unitRef="segment" contextRef="c-19" decimals="INF" name="cdxs:NumberOfBusinessSegments" format="ixt-sec:numwordsen" scale="0" id="f-1345">two</ix:nonFraction> business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker (&#8220;CODM&#8221;), assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as <ix:nonFraction unitRef="segment" contextRef="c-341" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1346">one</ix:nonFraction> reportable segment since the fourth quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 1, 2023, the Company's operations are managed and reported to the CODM on a consolidated basis. The CODM uses consolidated income (loss) from operations and net income (loss) to assess financial performance and make resource allocation decisions. These financial measures are used by the CODM to balance short-term financial results with long-term strategic goals, guiding the allocation of budget between product costs, research and development, and general, selling and administrative expenses.</span></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the restructuring of our business, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-5" name="us-gaap:GoodwillImpairmentLoss" scale="6" id="f-1347">0.8</ix:nonFraction> million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> to write off all of the associated goodwill. The impairment charge is recorded within asset impairment and other charges in the consolidated statements of operation for the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">103</span></div></div></div><hr style="page-break-after:always"/><div style="background-color:#ffffff"><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1343-2"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Customers</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" id="f-1348" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues<br/>For the Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-342" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1349">18</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-343" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1350">22</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-344" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1351">56</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-345" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1352">13</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-346" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1353">10</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-347" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1354">10</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-348" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1355">13</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:9pt;padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-349" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1356">16</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-350" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1357">12</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-351" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1358">18</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-352" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1359">12</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer F</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-353" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1360">12</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer G</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-354" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1361">10</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer H</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-355" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1362">21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer I</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-356" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1363">13</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div></ix:nonNumeric><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Geographical Information</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" id="f-1364" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:59.572%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.622%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1365">21,278</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1366">13,733</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1367">17,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)(3)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1368">10,359</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1369">22,907</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1370">56,540</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(4)(5)(6)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1371">27,708</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1372">33,503</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1373">65,050</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1374">59,345</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1375">70,143</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1376">138,590</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> United States revenue was $<ix:nonFraction unitRef="usd" contextRef="c-357" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1377">21.3</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-358" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1378">13.7</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-359" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1379">17.0</ix:nonFraction> million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Ireland revenue was $<ix:nonFraction unitRef="usd" contextRef="c-360" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1380">1.8</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-361" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1381">0.5</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-362" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1382">37.2</ix:nonFraction> million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Switzerland revenue was $<ix:nonFraction unitRef="usd" contextRef="c-363" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1383">3.4</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-364" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1384">11.1</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-365" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1385">9.2</ix:nonFraction> million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> China revenue was $<ix:nonFraction unitRef="usd" contextRef="c-366" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1386">9.8</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-367" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1387">20.3</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-368" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1388">48.6</ix:nonFraction> million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(5)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> India revenue was $<ix:nonFraction unitRef="usd" contextRef="c-369" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1389">7.3</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-370" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1390">5.7</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-371" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1391">8.8</ix:nonFraction> million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(6)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Singapore revenue was $<ix:nonFraction unitRef="usd" contextRef="c-372" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1392">6.2</ix:nonFraction> million, $<ix:nonFraction unitRef="usd" contextRef="c-373" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1393">2.4</ix:nonFraction> million, and $<ix:nonFraction unitRef="usd" contextRef="c-374" decimals="-5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" scale="6" id="f-1394">3.2</ix:nonFraction> million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" id="f-1395" escape="true"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.621%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-375" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1396">43,098</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-376" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1397">28,624</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i54de1f9b7c534b2395538b2f9d079d1a_142"></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Note 16. <ix:nonNumeric contextRef="c-1" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" id="f-1398" continuedAt="f-1398-1" escape="true">Restructuring Charges</ix:nonNumeric></span></div><ix:continuation id="f-1398-1" continuedAt="f-1398-2"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, in alignment with our enhanced strategic focus, we announced a restructuring of our business, including a plan for a workforce reduction of approximately <ix:nonFraction unitRef="number" contextRef="c-377" decimals="2" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" scale="-2" id="f-1399">25</ix:nonFraction>%. During the year ended December 31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, w</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e recorded a restructuring charge related to this workforce reduction of $<ix:nonFraction unitRef="usd" contextRef="c-378" decimals="-5" name="us-gaap:RestructuringCharges" scale="6" id="f-1400">3.1</ix:nonFraction> million related to severance and related benefit costs. The plan was substantially completed in September 2023 and severance costs were paid through the fourth quarter of 2023. We do not expect to record any significant future charges related to the restructuring plan.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">104</span></div></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><ix:continuation id="f-1398-2"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> In November 2022, we announced a plan for a workforce reduction of approximately <ix:nonFraction unitRef="number" contextRef="c-379" decimals="2" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" scale="-2" id="f-1401">18</ix:nonFraction>% to realign and optimize our workforce requirements in alignment with our refined corporate strategy. The plan was substantially completed in December 2022 and severance costs were paid through the third quarter of 2023. During the years ended December 31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we recorded restructuring charges of $<ix:nonFraction unitRef="usd" contextRef="c-380" decimals="-5" name="us-gaap:RestructuringCharges" scale="6" id="f-1402">0.2</ix:nonFraction> million and $<ix:nonFraction unitRef="usd" contextRef="c-381" decimals="-5" name="us-gaap:RestructuringCharges" scale="6" id="f-1403">3.2</ix:nonFraction> million, respectively, related to severance, bonus and other termination benefits in connection with the workforce reduction announced in November 2022. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We do not expect to record any future charges related to the restructuring plans initiated in 2023 and 2022.</span></div></ix:continuation><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">105</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_148"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9. CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_151"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9A. CONTROLS AND PROCEDURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Evaluation of Disclosure Controls and Procedures</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our management, under the supervision of our Chief Executive Officer and Chief Financial Officer and with the participation of our disclosure committee, evaluated the effectiveness of the design and operation of our disclosure controls and procedures as of December&#160;31, 2024. The term &#8220;disclosure controls and procedures,&#8221; as defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act, means controls and other procedures of a company that are designed to ensure that information required to be disclosed by us in the reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms. Disclosure controls and procedures include, without limitation, controls and procedures designed to ensure that information required to be disclosed by us in the reports that we file or submit u</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nder the Exchange Act is accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, as appropriate, to allow timely decisions regarding required disclosure. Based on this evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective as of December&#160;31, 2024 at the reasonable assurance level.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Management&#8217;s Report on Internal Control over Financial Reporting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as such term is defined in Exchange Act Rules 13a-15(f) and 15d-15(f). Internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external reporting purposes in accordance with United States generally accepted accounting principles.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, we conducted an evaluation of the effectiveness of our internal control over financial reporting as of December&#160;31, 2024 based on the guidelines established in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control-Integrated Framework </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;). Based on the results of our evaluation, our management concluded that our internal control over financial reporting was effective as of December&#160;31, 2024. We reviewed the results of management&#8217;s assessment with our Audit Committee.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inherent Limitations on Effectiveness of Controls</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In designing and evaluating the disclosure controls and procedures, management recognizes that any controls and procedures, even if determined effective and no matter how well designed and operated, can provide only reasonable assurance of achieving the desired control objectives to prevent or detect misstatements. In addition, the design of disclosure controls and procedures must reflect the fact that there are resource constraints and that management is required to apply judgment in evaluating the benefits of possible controls and procedures relative to their costs. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Changes in Internal Control over Financial Reporting </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no changes in our internal control over financial reporting (as defined in Rule 13a-15(f) of the Exchange Act) identified in connection with the evaluation required by paragraph (d) of Rule 13a-15 or 15d-15 of the Exchange Act, which occurred during the fourth fiscal quarter of the year ended December&#160;31, 2024, which has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting. &#160;&#160;&#160;&#160;</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_154"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9B. OTHER INFORMATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Rule 10b5-1 Trading Arrangements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the three months ended December&#160;31, 2024, none of the directors or executive officers of the Company <ix:nonNumeric contextRef="c-274" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-1404"><ix:nonNumeric contextRef="c-274" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-1405">adopted</ix:nonNumeric></ix:nonNumeric> or <ix:nonNumeric contextRef="c-274" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1406"><ix:nonNumeric contextRef="c-274" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1407">terminated</ix:nonNumeric></ix:nonNumeric> any contracts, instructions, or written plans for the purchase or sale of our securities that were intended to meet the affirmative defense conditions of Rule 10b5-1(c) or any other &#8220;non-Rule 10b5-1 trading arrangement.&#8221;</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_157"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9C. DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">106</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_160"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART III</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_163"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;10. DIRECTORS, EXECUTIVE OFFICERS AND CORPORATE GOVERNANCE</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have adopted a code of ethics applicable to our principal executive, financial and accounting officers and all persons performing similar functions. A copy of our code of ethics is available on our principal corporate website at www.codexis.com in the Investors section under &#8220;Corporate Governance.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2025 Proxy Statement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has adopted an <ix:nonNumeric contextRef="c-1" name="ecd:InsiderTrdPoliciesProcAdoptedFlag" format="ixt:fixed-true" id="f-1408">insider trading policy</ix:nonNumeric> which governs transactions in our securities by the Company and its directors, officers, employees, and consultants, and is reasonably designed to promote compliance with insider trading laws, rules and regulations, as well as listing standards, applicable to the Company. A copy of our insider trading policy is filed with this Annual Report on Form 10-K as Exhibit 19.1.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_166"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;11. EXECUTIVE COMPENSATION</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2025 Proxy Statement.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_169"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;12. SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2025 Proxy Statement.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_172"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;13. CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS,</span></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">AND DIRECTOR INDEPENDENCE</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2025 Proxy Statement.</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_175"></div><div style="margin-top:9pt;text-align:center;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;14. PRINCIPAL ACCOUNTING FEES AND SERVICES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by this item is incorporated by reference from the information that will be set forth in the 2025 Proxy Statement.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">107</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_178"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART IV</span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_181"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;15. EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></div><div style="margin-top:9pt;padding-left:27pt;text-indent:-27pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">1.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:20.25pt">Financial Statements: See &#8220;Index to Consolidated Financial Statements&#8221; in Part II, Item&#160;8 of this Annual Report on Form 10-K</span></div><div style="margin-top:9pt;padding-left:27pt;text-indent:-27pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:19.5pt">Exhibits: The exhibits listed in the accompanying index to exhibits are filed or incorporated by reference as part of this Annual Report on Form 10-K.</span></div><div style="margin-top:9pt"><span><br/></span></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">108</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_184"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="-sec-extract:summary;margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT INDEX</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.703%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:78.402%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.782%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312521155123/d207309dex11.htm">Equity Distribution Agreement, dated as of May 7, 2021, between Codexis, Inc. and Piper Sandler &amp; Co. (incorporated by reference to Exhibit 1.1 to the Company&#8217;s Current Report on Form 8-K, filed on May 7, 2021).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000095013010000138/dex31.htm">Amended and Restated Certificate of Incorporation of Codexis, Inc. filed with the Secretary of the State of the State of Delaware on April&#160;27, 2010 and effective as of April&#160;27, 2010 (incorporated by reference to Exhibit&#160;3.1 to the Company&#8217;s Quarterly Report on Form&#160;10-Q for the quarter ended March 31, 2010, filed on May&#160;28, 2010).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312512378221/d405085dex31.htm">Certificate of Designations of Series A Junior Participating Preferred Stock of Codexis, Inc., filed with the Secretary of State of the State of Delaware on September 4, 2012 (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on September 4, 2012).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.3</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312523168972/d522880dex31.htm">Certificate of Amendment to the Amended and Restated Certificate of Incorporation of Codexis, Inc., filed with the Secretary of the State of the State of Delaware on June 14, 2023 (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on June 16, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3.4</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524255904/d892460dex31.htm">Second A</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524255904/d892460dex31.htm">mended and Restated Bylaws of Codexis, Inc. effective as of</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524255904/d892460dex31.htm"> November 7</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524255904/d892460dex31.htm">, 2024 (incorporated by reference to Exhibit&#160;3.1 to the Company&#8217;s Current Report on Form&#160;8-K, filed on </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524255904/d892460dex31.htm">November 12</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524255904/d892460dex31.htm">, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reference is made to Exhibits 3.1 through 3.4.</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312512347356/d351774dex41.htm">Form of the Company&#8217;s Common Stock Certificate (incorporated by reference to Exhibit 4.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended June 30, 2012, filed on August 9, 2012).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.3</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524033744/d787129dex41.htm">Form of Warrant to Purchase Common Stock for Codexis, Inc., issued pursuant to the Loan and Security Agreement by and between the Company and Innovatus Life Sciences Fund I, LP. (incorporated by reference to Exhibit 4.1 to the Company&#8217;s Current Report on Form 8-K, filed on February 13, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.4</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">Description of Codexis' Securities Registered Pursuant to Section 12 of the Securities Exchange Act of 1934</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">(incorporated by reference to Exhibit 4.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">4</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm"> to the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 202</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">3</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">, filed on February 28, 202</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">4</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1A*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108a.htm">Lease Agreement by and between the Company and Metropolitan Life Insurance Company </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108a.htm">comm</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108a.htm">e</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108a.htm">ncing</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108a.htm"> as of February 1, 2004.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1B*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108b.htm">Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of June 1, 2004.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1C*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108c.htm">Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of March 9, 2007.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1D*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312509260412/dex108d.htm">Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of March 31, 2008.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1E</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312510248333/dex101.htm">Fourth Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of September 17, 2010 (incorporated by reference to Exhibit&#160;10.1 to the Company&#8217;s Quarterly Report on Form&#160;10-Q for the quarter ended September 30, 2010, filed on November&#160;4, 2010).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1F</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312511130937/dex101.htm">Fifth Amendment to Lease Agreement by and between the Company and Metropolitan Life Insurance Company dated as of March 16, 2011 (incorporated by reference to Exhibit&#160;10.1 to the Company&#8217;s Quarterly Report on Form&#160;10-Q for the quarter ended March 31, 2011, filed on May 6, 2011).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">109</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.703%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:78.402%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.782%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1G</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312512457399/d398690dex106.htm">Sixth Amendment to Lease by and between the Company and Metropolitan Life Insurance Company dated as of September 27, 2012 (incorporated by reference to Exhibit 10.6 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2012, filed on November 7, 2012).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1H</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037516000079/a103seventhamendmenttolease.htm">Seventh Amendment to Lease by and between the Company and Metropolitan Life Insurance Company dated as of October 11, 2016 (incorporated by reference to Exhibit 10.3 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2016, filed on November 8, 2016).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1I</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037519000014/a103leaseamendment8.htm">Eighth Amendment to Lease, dated as of February 8, 2019, by and between the Company and Metropolitan Life Insurance Company (incorporated by reference to Exhibit 10.3 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2019, filed on May 8, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.1J***</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="codexis-ex101jmetlifeamend.htm">Ninth Amendment to Lease, dated as of December 4, 202</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="codexis-ex101jmetlifeamend.htm">4</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="codexis-ex101jmetlifeamend.htm">, by and between the Company and Metropolitan Life Insurance Company.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.2+*</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312510073393/dex1011.htm">Codexis, Inc. 2010 Equity Incentive Award Plan and Form of Stock Option Agreement.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3A+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex991.htm">Codexis, Inc. 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.1 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3B+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex992.htm">Form of Restricted Stock Unit Award Grant Notice and Restricted Stock Unit Award Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.2 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3C+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex993.htm">Form of Stock Option Grant Notice and Stock Option Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.3 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3D+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex994.htm">Form of Stock Option Grant Notice and Stock Option Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.4 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3E+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex995.htm">Form of Performance Stock Unit Award Grant Notice and Performance Stock Unit Award Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.5 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3F+</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex996.htm">Form of Restricted Stock Award Grant Notice and Restricted Stock Award Agreement under 2019 Incentive Award Plan (incorporated by reference to Exhibit 99.6 to the Company's Registration Statement on Form S-8 (File No. 333-232262) filed with the SEC on June 21, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.3G+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000029/codexisamendmentto2019ince.htm">Amendment to the Codexis, Inc. 2019 Incentive Award Plan (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on June 16, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312519178854/d724919dex996.htm">Codexis, Inc. 2022 Employment Inducement Award Plan (incorporated by reference to Exhibit 99.1 to the Company's Registration Statement on Form S-8 (File No. 333-269163) filed with the SEC on January 9, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312523004729/d397354dex992.htm">Form of Stock Option Grant Notice and Stock Option Agreement under the 2022 Employment Inducement Award Plan (incorporated by reference to Exhibit 99.2 to the Company's Registration Statement on Form S-8 (File No. 333-269163) filed with the SEC on January 9, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.4C+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312523004729/d397354dex993.htm">Form of Restricted Stock Unit Award Grant Notice and Restricted Stock Unit Award Agreement under the 2022 Employment Inducement Award Plan (incorporated by reference to Exhibit 99.3 to the Company's Registration Statement on Form S-8 (File No. 333-269163) filed with the SEC on January 9, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">110</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.703%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:78.402%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.782%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.5A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000029/codexis2023employeestockpu.htm">Codexis, Inc. 2023 Employee Stock Purchase Plan (incorporated by reference to Exhibit 3.1 to the Company&#8217;s Current Report on Form 8-K, filed on June 16, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.5B</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm">Amendment to the Codexis, Inc. 2023 Employee Stock Purchase Plan.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm"> (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 20</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm">2</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm">4</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm">, filed on </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm">October 31, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex102firstamendmen.htm">).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.6</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/formindemnificationagreeme.htm">Form of Indemnification Agreement between the Company and each of its directors, officers and certain employees (incorporated by reference to Exhibit 10.4 to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.7+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a102ccseveranceagree.htm">Form of Amended and Restated Change in Control Severance Agreement between the Company and certain of its officers (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2019, filed on November 6, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.8</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312510239748/dex21.htm">Asset Purchase Agreement, dated October 28, 2010, by and among the Company, Codexis Mayflower Holdings, LLC and Maxygen, Inc. (incorporated by reference to Exhibit&#160;2.1 to the Company&#8217;s Current Report on Form&#160;8-K, filed on October 28, 2010).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.9A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a103tayloremploymentltr.htm">Employment Agreement by and between the Company and Ross Taylor effective as of August 4, 2019 (incorporated by reference to Exhibit 10.3 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2019, filed on November 6, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.9B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/rosstaylortransitionandsep.htm">Transition and Separation Agreement by and between the Company and Ross Taylor, dated as of February 3, 2023 (incorporated by reference to Exhibit 10.8B to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312512347356/d351774dex102.htm">Employment Agreement by and between the Company and John Nicols effective as of May 28, 2012 (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended June 30, 2012, filed on August 9, 2012).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037516000065/a101nicolsemploymentagreea.htm">Amendment to Employment Agreement between the Company and John Nicols, dated April 21, 2016 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended June 30, 2016, filed on August 9, 2016).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10C+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">Amendment to Employment Agreement between the Company and John Nicols, dated November 16, 2017 (incorporated by reference to Exhibit 10.8E to the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2017, filed on March 15, 2018).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10D+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037519000033/a104nicolsemployagreem.htm">Amendment to Employment Agreement between the Company and John Nicols, effective as of June 28, 2019 (incorporated by reference to Exhibit 10.4 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2019, filed on November 6, 2019).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.10E+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/nicolstransitionandseparat.htm">Transition and Separation Agreement by and between the Company and John Nicols, dated as of July 18, 2022 (incorporated by reference to Exhibit 10.1 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.11</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">Acquisition Agreement by and among the Company, Societ&#233; des Produits Nestl&#233; S.A., formerly known as Nestec Ltd. (</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">&#8220;</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">Nestl&#233; Health Science</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">&#8221;</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">), effective as of December 26, 2023.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm"> (incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">11</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm"> to the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 20</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">23</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">, filed on </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">February 28, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037518000009/ex108eamendemployagreenov17.htm">).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12A</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037521000028/exhibit101codexisaresancar.htm">Lease Agreement by and between the Company and ARE-SAN FRANCISCO NO. 63, LLC dated as of January 29, 2021 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2021, filed on May 7, 2021).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12B</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000033/codexis-ex101codexis_vaxcy.htm">Assignment and Assumption of Lease by and between the Company and Vaxcyte, Inc. dated as of September 1, 2023  (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2023, filed on November 3, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">111</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.703%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:78.402%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.782%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.12C</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000033/codexis-ex102landlordconse.htm">Consent to Assignment and First Amendment to Lease Agreement by and between the Company, Vaxcyte Inc. and ARE-San Francisco No. 63, LLC dated as of September 6, 2023 (incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000033/codexis-ex102landlordconse.htm">2</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000033/codexis-ex102landlordconse.htm"> to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended September 30, 2023, filed on November 3, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.13+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/dillyemploymentagreement_e.htm">Employment Agreement by and between the Company and Stephen Dilly dated as of August 9, 2022 (incorporated by reference to Exhibit 10.2 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.14A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/norrettofferletterandcda_e.htm">Offer Letter by and between the Company and Kevin Norrett dated as of September 12, 2022 (incorporated by reference to Exhibit 10.3 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.14B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037522000039/norrettccseveranceagreemen.htm">Change in Control Severance Agreement by and between the Company and Kevin Norrett dated September 12, 2022 (incorporated by reference to Exhibit 10.4 to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2022, filed on November 4, 2022).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.15A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryaliofferletter_ex1023a.htm">Offer Letter by and between the Company and Sriram Ryali dated as of December 30, 2023 (incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryaliofferletter_ex1023a.htm">2</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryaliofferletter_ex1023a.htm">3A to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.15B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryalichangeofctrlsevera.htm">Change in Control Severance Agreement by and between the Company and Sriram Ryali dated January 27, 2023 (incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryalichangeofctrlsevera.htm">23B</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037523000012/sriryalichangeofctrlsevera.htm"> to the Company's Annual Report on Form 10-K for the year ended December 31, 2022, filed on February 27, 2023).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.15C+***</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1015cseparationa.htm">Separation</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1015cseparationa.htm"> and Consulting Agreement by and between the Company and Sriram Ryali dated October 16, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1015cseparationa.htm">.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.16A</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000009/codexis-ex1017codexis_inno.htm">Loan and Security Agreement by and between the Company and Innovatus Life Sciences Fund I, LP., effective as of February 13, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000009/codexis-ex1017codexis_inno.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000009/codexis-ex1017codexis_inno.htm">(incorporated by reference to Exhibit 10.17 to the Company's Annual Report on Form 10-K for the year ended December 31, 2023, filed on February 28, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.16B</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">First Amendment to the </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">Loan and Security Agreement</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">, dated May 1, 2024,</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm"> by and between the Company and Innovatus Life Sciences Fund I, LP</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">(incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">1</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm"> to the Company's Quarterly Report on Form 10-Q for the quarter ended </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">June 30, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">, filed on </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">A</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">u</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">gust 8, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000022/codexis-ex101innovatusfirs.htm">).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.16C</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1016cinnovatus2n.htm">Second</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1016cinnovatus2n.htm"> Amendment to the Loan and Security Agreement, dated </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1016cinnovatus2n.htm">December 20</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex1016cinnovatus2n.htm">, 2024, by and between the Company and Innovatus Life Sciences Fund I, LP.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.17+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000119312524197816/d882098dex41.htm">Codexis, Inc. 2024 Inducement Plan (incorporated by reference to Exhibit 4.1 to the Company's Registration Statement on Form S-8 (File No. 333-281429) filed with the SEC on August 9, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.18A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">Offer Letter by and between the Company and Georgia Erbez, dated as of September 30, 2024.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">(incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">3</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm"> to the Company's Quarterly Report on Form 10-Q for the quarter ended </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">September 30, 2024</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">, filed on </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">October 31</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex103offerletterxg.htm">, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.18B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex104changeinctrls.htm">Change in Control Severance Agreement by and between the Company and Georgia Erbez, dated as of September 30, 2024.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex104changeinctrls.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex104changeinctrls.htm">(incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex104changeinctrls.htm">4</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex104changeinctrls.htm"> to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2024, filed on October 31, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.19A+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex105offerletterxa.htm">Offer Letter by and between the Company and Alison Moore, dated as of September 30, 2024.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex105offerletterxa.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex105offerletterxa.htm">(incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex105offerletterxa.htm">5</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex105offerletterxa.htm"> to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2024, filed on October 31, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10.19B+</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex106changeinctrls.htm">Change in Control Severance Agreement by and between the Company and Alison Moore, dated as of September 30, 2024.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex106changeinctrls.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex106changeinctrls.htm">(incorporated by reference to Exhibit 10.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex106changeinctrls.htm">6</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/1200375/000120037524000027/codexis-ex106changeinctrls.htm"> to the Company's Quarterly Report on Form 10-Q for the quarter ended September 30, 2024, filed on October 31, 2024).</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex191insidertradin.htm">C</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex191insidertradin.htm">odexis Insider Trading P</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex191insidertradin.htm">olicy</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex191insidertradin.htm"> </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex191insidertradin.htm">effective as of </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="codexis-ex191insidertradin.htm">May 9, 2024</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit231auditconsent2024.htm">Consent of </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit231auditconsent2024.htm">KPMG LLP</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit231auditconsent2024.htm">, independent registered public accounting firm.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">112</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.703%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:78.402%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.782%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Exhibit<br/>No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Description</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23.2</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit232auditconsent2024.htm">Consent of </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit232auditconsent2024.htm">BDO USA, P.C.</a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="exhibit232auditconsent2024.htm">, independent registered public accounting firm.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Power of Attorney (see signature page to this Annual Report on Form 10-K).</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit311cdxs-20241231.htm">Certification of Principal Executive Officer Required Under Rule&#160;13a-14(a) and 15d-14(a) of the Securities Exchange Act of 1934, as amended.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.2</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit312cdxs-20241231.htm">Certification of Principal Financial Officer Required Under Rule&#160;13a-14(a) and 15d-14(a) of the Securities Exchange Act of 1934, as amended.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.1**</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="exhibit321cdxs-20241231.htm">Certification of Principal Executive Officer and Principal Financial Officer Required Under Rule&#160;13a-14(b) of the Securities Exchange Act of 1934, as amended, and 18 U.S.C. &#167;1350.</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:8pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">97.1</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">Codexis, Inc. Clawback Policy effective </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">as of </a><a style="-sec-extract:exhibit;color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/1200375/000120037524000009/cdxs-20231231.htm">August 24, 2023</a></span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The following materials from Registrant&#8217;s Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2024 formatted in Inline Extensible Business Reporting Language (iXBRL) includes: (i)&#160;Consolidated Balance Sheets at December&#160;31, 2024 and December&#160;31, 2023, (ii)&#160;Consolidated Statements of Operations for the years ended December&#160;31, 2024, December&#160;31, 2023 and December&#160;31, 2022, (iii)&#160;Consolidated Statements of Cash Flows for the years ended December&#160;31, 2024, December&#160;31, 2023 and December&#160;31, 2022, (vi) Consolidated Statements of Stockholders&#8217; Equity for the years ended December 31, 2023, December&#160;31, 2023 and December&#160;31, 2022 and (vii)&#160;Notes to Consolidated Financial Statements.</span></div></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.SCH</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Schema Document</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.CAL</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Calculation Linkbase Document</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.DEF</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Definition Linkbase Document</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.LAB</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Label Linkbase Document</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.PRE</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Presentation Linkbase Document</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:6pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">104</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The cover page from the Company&#8217;s Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2024, formatted in Inline XBRL and contained in Exhibit 101.</span></div></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">+&#160;&#160;&#160;&#160;Indicates a management contract or compensatory plan or arrangement.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">*&#160;&#160;&#160;&#160;Filed as exhibits to the registrant&#8217;s Registration Statement on Form S-1 (File No.&#160;333-164044), effective April&#160;21, 2010, and incorporated herein by reference.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">**&#160;&#160;&#160;&#160;Pursuant to Item 601(b)(32) of Regulation S-K this exhibit is furnished rather than filed with this report.</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">***&#160;&#160;&#160;&#160;Portions of the exhibit, marked by brackets, have been omitted because the omitted information is (i) not material and (ii) customarily and actually treated as private or confidential.</span></div><div><span><br/></span></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_187"></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;16. FORM 10-K SUMMARY</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</span></div><div style="text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="padding-left:27pt"><span><br/></span></div><div style="padding-left:27pt"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">113</span></div></div></div><div id="i54de1f9b7c534b2395538b2f9d079d1a_190"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="margin-top:9pt;padding-left:9pt"><span><br/></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SIGNATURES</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of Section&#160;13 or 15(d) of the Securities Exchange Act of 1934, the Registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%"><tr><td style="width:1.0%"/><td style="width:6.085%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:42.762%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.888%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:41.865%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CODEXIS, INC.</span></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By:</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Stephen Dilly</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chairman of the Board of Directors, President, and Chief Executive Officer</span></div></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(Principal Executive Officer)</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="margin-top:9pt;text-align:center"><span><br/></span></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">POWER OF ATTORNEY</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each person whose individual signature appears below hereby authorizes and appoints Stephen Dilly and Georgia Erbez, and each of them, with full power of substitution and resubstitution and full power to act without the other, as his or her true and lawful attorney-in-fact and agent to act in his or her name, place and stead and to execute in the name and on behalf of each person, individually and in each capacity stated below, and to file any and all amendments to this annual report on Form 10-K and to file the same, with all exhibits thereto, and other documents in connection therewith, with the Securities and Exchange Commission, granting unto said attorneys-in-fact and agents, and each of them, full power and authority to do and perform each and every act and thing, ratifying and confirming all that said attorneys-in-fact and agents or any of them or their or his substitute or substitutes may lawfully do or cause to be done by virtue thereof.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the Registrant and in the capacities and on the dates indicated.</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.099%"><tr><td style="width:1.0%"/><td style="width:37.052%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.588%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:31.090%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.308%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:20.362%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">SIGNATURE</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">TITLE</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">DATE</span></td></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Stephen Dilly</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chairman of the Board of Directors, President, and Chief Executive Officer (Principal Executive Officer)</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stephen Dilly</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Georgia Erbez</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief Financial Officer (Principal Financial and Accounting Officer)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Georgia Erbez</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Raymond De Vr&#233;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raymond De Vr&#233;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ Byron L. Dorgan</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Byron L. Dorgan</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Esther Martinborough</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Esther Martinborough</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;H. Stewart Parker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">H. Stewart Parker</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Christos Richards</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Christos Richards</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Rahul Singhvi</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Rahul Singhvi</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 2.12pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/ David V. Smith</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 2.12pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">David V. Smith</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;Dennis P. Wolf</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date:</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 27, 2025</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dennis P. Wolf</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span><br/></span></div><div style="height:33.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">114</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.1J
<SEQUENCE>2
<FILENAME>codexis-ex101jmetlifeamend.htm
<DESCRIPTION>EX-10.1J
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="if01b42d5273c4e74b82ad6d18d9807ff_1"></div><div style="min-height:74.16pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#91;***&#93; Certain marked information has been omitted from this exhibit because it is both not material and is the type that the Registrant treats as private or confidential.</font></div><div style="margin-top:3.95pt"><font><br></font></div><div style="margin-top:3.95pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NINTH AMENDMENT TO LEASE</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Ninth Amendment to Lease (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Amendment</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) is made effective, and dated for reference purposes, as of December 4, 2024 (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Effective Date</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) by and between METROPOLITAN LIFE INSURANCE COMPANY, a New York corporation (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Landlord</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), and CODEXIS, INC., a Delaware corporation (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), with reference to the following facts (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recitals</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#58;</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:15.57pt">Landlord and Tenant are the parties to that certain lease which is comprised of the following (collectively, the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Existing Lease</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#58; that certain Lease, dated October </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#91;sic&#93;, 2003, entered into by and between Tenant, as tenant and Landlord, as landlord (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Original Lease</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#59; as amended by that certain First Amendment to Lease dated as of June 1, 2004, that certain Second Amendment to Lease (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Second Amendment</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) dated as of March 9, 2007, that certain Third Amendment to Lease (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Third Amendment</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) dated as of March 31, 2008, that certain Fourth Amendment to Lease dated as of September 17, 2010, that certain Fifth Amendment to Lease (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Fifth Amendment</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) dated March 16, 2011, that certain Sixth Amendment to Lease (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sixth Amendment</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) dated September 27, 2012, that certain Seventh Amendment to Lese dated October 11, 2016, and that certain Eighth Amendment to Lease (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Eighth Amendment</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) dated February 8, 2019, for certain premises (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Premises</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) containing approximately </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">77,100 </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">rentable square feet, comprised of the following&#58; (i) approximately 11,020 rentable square feet commonly known as 501 Chesapeake Drive, Redwood City, California (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Chesapeake Space</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;),</font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii) approximately 10,597 rentable square feet commonly known as 200 Penobscot Drive, Redwood City, California (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">200 Penobscot Space</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), (iii) approximately 17,627 rentable square feet commonly known as 220 Penobscot Drive, Redwood City, California (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">220 Penobscot Space</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#59; and (iv) approximately 37,856 rentable square feet commonly known as 400 Penobscot Drive, Redwood City, California (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">400 Penobscot Space</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), in the Project (commonly known as Seaport Centre in Redwood City, California), all as more particularly described in the Existing Lease.</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">B.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:15.57pt">Landlord and Tenant desire to provide for (i) the extension of the Term for the Premises&#59; and (ii) other amendments of the Existing Lease as more particularly set forth below.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">NOW, THEREFORE, in consideration of the foregoing, and of the mutual covenants set forth herein and of other good and valuable consideration, the receipt and adequacy of which are hereby acknowledged, the parties hereto agree as follows&#58;</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.8pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SCOPE OF AMENDMENT&#59; DEFINED TERMS</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Except as expressly provided in this Amendment, the Existing Lease shall remain in full force and effect. Should any inconsistency arise between this Amendment and the Existing Lease as to the specific matters which are the subject of this Amendment, the terms and conditions of this Amendment shall control. All capitalized terms used in this Amendment and not defined herein shall have the meanings set forth in the Existing Lease unless the context clearly requires otherwise&#59; provided, however, that the term &#8220;Lease&#8221; as used herein and, from and after the Effective Date, in the Existing Lease shall refer to the Existing Lease as modified by this Amendment. The &#8220;200 Penobscot Space&#8221;, the &#8220;220 Penobscot Space&#8221; and the &#8220;400 Penobscot Space&#8221; are sometimes collectively referred to as the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Penobscot Space</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">EXTENSION OF TERM FOR THE CHESAPEAKE SPACE AND THE PENOBSCOT</font></div><div style="margin-top:0.05pt;padding-left:10.95pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SPACE</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Landlord and Tenant acknowledge and agree that, notwithstanding any provision of the Existing Lease to the contrary, (a) the current Term, solely with respect to the Chesapeake Space, pursuant to the Existing Lease will expire on May 31, 2029, and that the Term of the Lease solely for the Chesapeake Space is hereby extended for the period of thirty-nine (39) months (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Chesapeake Fifth Extended Term</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) commencing on June 1, 2029 (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Chesapeake Fifth Extension Date</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) and expiring August 31, 2032 (hereafter, the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Extended Expiration Date</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), unless sooner terminated pursuant to the terms of the </font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">1</font></div></div></div><hr style="page-break-after:always"><div style="min-height:74.16pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:0.05pt;padding-left:10.95pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease&#59; and (b) the current Term, solely with respect to the Penobscot Space, pursuant to the Existing Lease will expire May 31, 2027, and that the Term of the Lease solely for the Penobscot Space is hereby extended for the period of sixty-three (63) months (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Penobscot Second Extended Term</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) commencing on June 1, 2027 (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Penobscot Second Extension Date</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) and expiring on the Extended</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">2</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_4"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Expiration Date. Landlord and Tenant acknowledge and agree that this Amendment provides all rights and obligations of the parties with respect to the Extended Term, whether or not in accordance with any other provisions, if any, of the Existing Lease regarding renewal or extension&#59; provided, however, that (x) with respect to the Chesapeake Space, Tenant shall continue to have one (1) option to extend the Term of the Lease for an additional term of five (5) years in accordance with the terms and conditions of Section 7(b) of the Sixth Amendment, and (y) with respect to the Penobscot Space, Tenant shall continue to have one (1) option to extend the Term of the Lease for an additional term of five (5) years in accordance with the terms and conditions of Section 12(b) of the Fifth Amendment, provided, however, that Tenant shall have the right to exercise such option to extend in this subclause (y) as to the 400 Penobscot Space only, as to the combined 200 and 220 Penobscot Space only, or as to the Penobscot Space in its entirety.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:10.95pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">MONTHLY BASE RENT FOR CHESAPEAKE FIFTH EXTENDED TERM</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Notwithstanding</font></div><div style="padding-left:11pt;padding-right:10.65pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">any provision of the Existing Lease to the contrary, commencing on the Chesapeake Fifth Extension Date and continuing through the Extended Expiration Date, the amount of Monthly Base Rent payable by Tenant for the Chesapeake Space shall be as follows&#58;</font></div><div style="margin-top:0.45pt"><font><br></font></div><div style="padding-left:48.7pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.575%"><tr><td style="width:1.0%"></td><td style="width:51.181%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:46.619%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="border-left:1.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-2.05pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:10.50pt">Period from&#47;to</font></div></td><td colspan="3" style="border-left:1.5pt solid #000000;border-right:1.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-left:52.97pt;padding-right:-2.63pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:10.50pt">Monthly Base Rent</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-2pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2029 &#8211; May 31, 2030</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.98pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$67,222.00*</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-2pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2030 &#8211; May 31, 2031</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$69,238.66</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-2pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2031 &#8211; May 31, 2032</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$71,315.82</font></div></td></tr><tr><td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.95pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2032 &#8211; August 31, 2032</font></div></td><td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$73,455.29</font></div></td></tr></table></div><div><font><br></font></div><div style="margin-top:9.5pt"><font><br></font></div><div style="padding-left:46.95pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">*Notwithstanding anything in the foregoing to the contrary, provided that a Default (as defined in Section 11.01 of the Original Lease) by Tenant (other than the first Default in any twelve (12) month period unless such Default continues beyond three (3) business days after written notice thereof) has not previously occurred, Landlord agrees to forbear in the collection of and abate the Monthly Base Rent solely for the Chesapeake Space due and payable for the period beginning on June 1, 2029 and continuing through August 31, 2029, totaling not more than Two Hundred One Thousand Six Hundred Sixty-Six and 00&#47;100 Dollars ($201,666.00) in the aggregate (collectively, &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Chesapeake Space Abated Rent</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#59; provided, further, that in the event of a Default by Tenant at any time prior to August 31, 2032 (the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Chesapeake Outside Month</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), a fraction of all previously abated Chesapeake Space Abated Rent under this Amendment, the numerator of which shall be the number of months remaining from and including the month in which such Default occurs until and including the Chesapeake Outside Month, and the denominator of which shall be the number of months from and including the month in which the Chesapeake Fifth Extension Date occurs until and including the Chesapeake Outside Month, shall be immediately due and payable in full at that time without the necessity of further notice or action by Landlord (provided, however, that such fraction of the Chesapeake Space Abated Rent shall not be immediately due and payable with respect to the first Default in any twelve (12) month period unless such Default continues beyond three (3) business days after written notice thereof).</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:10.95pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">MONTHLY  BASE  RENT  FOR  PENOBSCOT  SECOND  EXTENDED  TERM</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:0.05pt;padding-left:11pt;padding-right:10.95pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Notwithstanding any provision of the Existing Lease to the contrary, commencing on the Penobscot Second Extension Date and continuing through the Penobscot Extended Expiration Date, the amount of Monthly Base Rent payable by Tenant for the Penobscot Space shall be as follows&#58;</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">3</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_7"></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="padding-left:47.75pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.882%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="border-left:1.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.98pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:10.50pt">Period from&#47;to</font></div></td><td colspan="3" style="border-left:1.5pt solid #000000;border-right:1.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-left:58.02pt;padding-right:-2.63pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:10.50pt">Monthly Base Rent</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:6.05pt;padding-right:-1.93pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2027 &#8211; May 31, 2028</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:1.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:6.05pt;padding-left:69.67pt;padding-right:-2.63pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$379,960.00*</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.93pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2028 &#8211; May 31, 2029</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.8pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$391,358.80</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.93pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2029 &#8211; May 31, 2030</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.8pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$403,099.56</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.93pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2030 &#8211; May 31, 2031</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.8pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$415,192.55</font></div></td></tr><tr><td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.93pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2031 &#8211; May 31, 2032</font></div></td><td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.8pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$427,648.33</font></div></td></tr><tr><td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.88pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">June 1, 2032 &#8211; August 31, 2032</font></div></td><td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:5.95pt;padding-right:-1.8pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:10.55pt">$440,477.78</font></div></td></tr></table></div><div style="margin-top:6.95pt;padding-left:47pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">*Notwithstanding anything in the foregoing to the contrary, provided that a Default by Tenant (other than the first Default in any twelve (12) month period unless such Default continues beyond three (3) business days after written notice thereof) has not previously occurred, Landlord agrees to forbear in the collection of and abate the Monthly Base Rent solely for the Penobscot Space due and payable for the period beginning on June 1, 2027 and continuing through August 31, 2027, totaling not more than One Million One Hundred Thirty-Nine Thousand Eight Hundred Eighty and 00&#47;100 Dollars ($1,139,880.00) in the aggregate (collectively, &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Penobscot Space Abated Rent</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#59; provided, further, that in the event of a Default by Tenant at any time prior to August 31, 2032 (the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Penobscot Outside Month</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), a fraction of all previously abated Penobscot Space Abated Rent under this Amendment, the numerator of which shall be the number of months remaining from and including the month in which such Default occurs until and including the Penobscot Outside Month, and the denominator of which shall be the number of months from and including the month in which the Penobscot Second Extension Date occurs until and including the Penobscot Outside Month, shall be immediately due and payable in full at that time without the necessity of further notice or action by Landlord (provided, however, that such fraction of the Penobscot Space Abated Rent shall not be immediately due and payable with respect to the first Default in any twelve (12) month period unless such Default continues beyond three (3) business days after written notice thereof).</font></div><div style="margin-top:3.35pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:11pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 5.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">LETTER OF CREDIT</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Landlord and Tenant acknowledge and agree that Tenant has provided Landlord with a Letter of Credit in the amount of One Million Sixty-One Thousand Five Hundred Seventy-Two and 62&#47;100 Dollars ($1,061,572.62) pursuant to Section 5.02 of the Original Lease, as amended by Section 4 of the Second Amendment, Section 5 of the Third Amendment, Section 9 of the Fifth Amendment and Section 5 of the Eighth Amendment. Tenant acknowledges its obligation to maintain the Letter of Credit throughout the Term. Accordingly, the LOC Expiration Date (as defined in the Lease) shall mean the date that is forty-five (45) days following the Extended Expiration Date (as the same may be further extended). If the Option to Extend is exercised with respect to a portion but not all of the Premises, then so long as there has been no material adverse change in Tenant&#8217;s financial position from such position as of the date of execution of the Lease, as certified by Tenant&#8217;s independent certified public accountants, and as supported by Tenant&#8217;s certified financial statements, copies of which shall be delivered to Landlord with Tenant&#8217;s written notice exercising the Option to Extend, then the portion of the Letter of Credit required to be maintained from and after the Extended Expiration Date shall be limited to a prorata portion of the Letter of Credit amount applicable to the rentable square footage of the Premises that is subject to the extension. Notwithstanding the foregoing or anything to the contrary contained in the Lease, in the event that at any time the financial institution which issued the Letter of Credit held by Landlord is declared insolvent by the FDIC or is closed for any reason, Tenant shall within a reasonable period not to exceed fifteen (15) days provide a substitute Letter of Credit that satisfies the requirements of the Lease as amended hereby from a financial institution reasonably acceptable to Landlord.</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 6.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">TENANT&#8217;S SHARE</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. During the Chesapeake Fifth Extended Term and the Penobscot Second Extended Term, Tenant shall pay all Rent Adjustments, including Tenant&#8217;s Share of Operating Expenses. Notwithstanding any provisions of the Existing Lease to the contrary, during the Chesapeake Fifth Extended Term and the Penobscot Second Extended Term, Tenant&#8217;s Share is as follows&#58;</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">4</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_10"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.73pt">Chesapeake Space&#58; 3.65% of Phase I and 2.05% of the Project.</font></div><div style="margin-top:10pt;padding-left:11pt;padding-right:21.2pt;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.78pt">200 Penobscot Space and 220 Penobscot Space (combined)&#58;&#160;&#160;&#160;&#160;9.35% of Phase I and 5.25% of the Project.</font></div><div style="margin-top:10.1pt;padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.29pt">400 Penobscot Space&#58;&#160;&#160;&#160;&#160;12.54% of Phase I and 7.04% of the Project.</font></div><div style="margin-top:10.95pt;padding-left:11pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 7.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">&#8220;AS IS&#8221; CONDITION</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:3.4pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Notwithstanding any provision of the Existing Lease to the contrary, Tenant hereby leases and accepts the Chesapeake Space for the Chesapeake Fifth Extended Term and the Penobscot Space for the Penobscot Second Extended Term in its &#8220;AS IS&#8221; condition existing on the Effective Date, without any express or implied representations or warranties of any kind by Landlord, its brokers, manager or agents, or the employees of any of them regarding the Premises&#59; and Landlord shall not have any obligation to construct or install any tenant improvements or alterations or to pay for any such construction or installation, except as expressly set forth in the Workletter (defined below) and except for Landlord&#8217;s continuing obligations under the Lease.</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.9pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Tenant shall have the right to perform the work and make the installations in Chesapeake Space and the Penobscot Space as set forth in the Workletter set forth in </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Exhibit A</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> hereto (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Workletter</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) (such work may be referred to as &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant Alterations</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:10.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 8.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">ASSIGNMENT AND SUBLETTING</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:3.4pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.73pt">The penultimate sentence of Section 10.01(a) of the Original Lease is hereby deleted.</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.78pt">Section 10.02 of the of the Original Lease is amended so that Landlord&#8217;s right to recapture shall not apply if Tenant proposes to sublease less than all of the square footage of the Rentable Area contained in the Chesapeake Space and the Penobscot Space collectively.</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:11pt;padding-right:11.05pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 9.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">OFFER RIGHT</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The Offer Right set forth in Section 9 of the Eighth Amendment is hereby deleted in its entirety and replaced with the following&#58;</font></div><div style="margin-top:8.95pt;padding-left:10.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Landlord hereby grants Tenant a right to lease the Offer Spaces (defined below) if and to the extent such space is Available (defined below) during the period beginning on the date of execution of this Amendment and expiring &#91;***&#93; months &#91;***&#93; (the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Offer Period</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), upon and subject to the terms and conditions of this Section (the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Offer Right</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), and provided that at the time of exercise of such right&#58; (i) Tenant must be conducting regular, active, ongoing business in, and be in occupancy (and occupancy by a subtenant, licensee or other party permitted or suffered by Tenant shall not satisfy such condition) of at least seventy percent (70%) of the square footage of the Rentable Area of the Premises at the time of exercise of such right&#59; and (ii) there has been no material adverse change in Tenant's financial position from such position as of the Effective Date, as certified by Tenant's chief financial officer, and as supported by Tenant's certified financial statements, copies of which shall be delivered to Landlord with Tenant's written notice exercising its right hereunder, and to Landlord&#8217;s reasonable satisfaction. Without limiting the generality of the foregoing, Landlord may reasonably conclude there has been a material adverse change if Tenant's chief financial officer does not certify there has been no such change. Notwithstanding the foregoing, so long as Tenant is a publicly traded company on an &#8220;over-the-counter&#8221; market or any recognized national or international securities exchange, Tenant shall not be required to provide certified financial statements by its chief financial officer (and shall not be required to provide a certification by its chief financial officer that there has been no material adverse change in Tenant&#8217;s financial position) so long as Tenant&#8217;s current public annual report (in compliance with applicable securities laws) for such applicable year is available to Landlord in the public domain.</font></div><div style="text-align:justify"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">5</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.78pt">&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Offer Spaces</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; shall mean the leasable space consisting of approximately (i) 15,&#91;***&#93; rentable square feet and referred to as &#91;***&#93;, and (ii) 11,&#91;***&#93; rentable square feet and referred to as &#91;***&#93; (each individually referred to as an &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Offer Space</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">. </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The term &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Available</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34; shall mean that the space in question is either&#58; (1) vacant and free and clear of the tenant in the Offer Space as of the Effective Date, &#91;***&#93; (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Current Tenant</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#59; or (2) space as to which Landlord has received a proposal, or Landlord is making a proposal, for a lease or rights of any nature applicable in the future when such space would be free and clear of the applicable Current Tenant. The parties acknowledge and agree that Landlord shall be free at any time during the term of the lease with the Current Tenant to enter into an extension or renewal of the term for the applicable Offer Space with the Current Tenant.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.34pt">Nothing herein shall be deemed to limit or prevent Landlord from marketing, discussing or negotiating with any other party for a lease of, or rights of any nature as to, any part of the Offer Space, but during the Offer Period before Landlord makes any written proposal to any other party (other than the Current Tenant) for any Offer Space which becomes Available (including giving a written response to any proposal or offer received from another party), or contemporaneously with making any such proposal, and in any event within thirty (30) days after such space becomes vacant and free and clear of the applicable Current Tenant, Landlord shall give Tenant written notice (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Landlord's Notice</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), which notice identifies the space Available, its rentable area, Landlord&#8217;s estimate of the projected date such space will be vacant and deliverable to Tenant, Landlord&#8217;s estimate of the applicable Fair Market Rental Rate, as defined in </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Exhibit B</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> hereto (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Landlord&#8217;s Estimate</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), and if applicable, base year or base amount (if different from that for the rest of the Premises) with respect to Operating Expenses. For the period of ten (10) days after Landlord gives Landlord's Notice (the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Election Notice Period</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), Tenant shall have the right to give Landlord irrevocable written notice (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Election Notice</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) of Tenant&#8217;s election to lease all (and not less than all) the Offer Space identified in Landlord&#8217;s Notice.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:10.7pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.78pt">In the event Tenant duly and timely delivers its Election Notice to Landlord, such exercise shall thereby create and constitute a binding lease of the Offer Space by and to Tenant, subject to suspension or termination of such right pursuant to Subsection (h) below, upon and subject to the same terms and conditions contained in the Lease except as follows&#58; (i) Tenant shall accept the Offer Space in its then &#8220;AS IS&#8221; condition, but broom clean and free of all tenants or occupants, without any obligation of Landlord to repaint, remodel, improve or alter such space for Tenant&#8217;s occupancy or to provide Tenant any allowance therefor except to the extent tenants leasing space in Comparable Transactions receive an allowance pursuant to the definition of Fair Market Rental Rate, provided, however, Landlord, by notice given to Tenant within thirty (30) days after receipt of Tenant&#8217;s Election Notice, may elect to provide, in lieu of such allowance for alterations to the Offer Space, a rent credit equal to the amount of the allowance that would have otherwise been given, credited toward the rents applicable only to the Offer Space and due starting after such rent obligation commences&#59; (ii) Landlord shall deliver the Offer Space to Tenant no later than thirty (30) days after the later of the date on which Landlord regains possession of such space or the date on which Landlord receives Tenant&#8217;s Election Notice&#59; (iii) upon such delivery, the Offer Space shall be part of the Premises under the Lease, such that the term &#8220;Premises&#8221; in the Lease thereafter shall mean both the space leased immediately prior to such delivery and the Offer Space, and shall be leased for the remaining Penobscot Second Extended Term (subject to a separate option to extend the Term of the Lease with respect to the Offer Space for an additional term of five (5) years (which option to extend shall be under the same terms and conditions of Section 12(b) of the Fifth Amendment)&#59; (iv) starting on such delivery date, with respect to the Offer Space Tenant shall pay Monthly Base Rent equal to the Fair Market Rental Rate, with Fair Market Rental Rate defined and determined as set forth herein and in </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Exhibit B</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#59; (v) starting on such delivery date, with respect to the Offer Space Tenant shall additionally pay Tenant&#8217;s Share of Operating Expenses or increases in Operating Expenses, as applicable under the Lease, with Tenant&#8217;s Share recalculated to reflect addition of the Offer Space&#59; (vi) starting on such delivery date, Tenant shall additionally pay other charges payable by Tenant for utilities and otherwise with respect to the Offer Space&#59; and (vii) the Letter of Credit shall be increased to an amount that is the same percentage or proportion of Rent (after including Rent for the Offer Space) as the prior amount of Letter of Credit was in relation to prior Rent.</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">6</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_13"></div><hr style="page-break-after:always"><div style="min-height:79.92pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.5pt;padding-left:10.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(e)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Landlord&#8217;s Estimate set forth in Landlord&#8217;s Notice shall be conclusive and binding as the Monthly Base Rent payable for the Offer Space in Landlord&#8217;s Notice unless Tenant notifies Landlord in Tenant&#8217;s Election Notice that Tenant elects to lease the subject Offer Space but disputes Landlord&#8217;s Estimate and specifies in detail the reasons therefor and states Tenant&#8217;s good faith estimate of the Fair Market Rental Rate. If the dispute is not resolved within ten (10) business days after Landlord receives Tenant&#8217;s Election Notice as described above, then the Fair Market Rental Rate shall be determined in accordance with the terms of </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Exhibit B</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.4pt;padding-left:10.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(f)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:15.62pt">Promptly after final determination of the Fair Market Rental Rate, Landlord shall prepare a memorandum confirming the specific dates, amounts and terms of the lease of the subject Offer Space in accordance with the terms and conditions of this Offer Right, in the form of an amendment to the Lease. Tenant shall execute such amendment within ten (10) business days after receipt of the proposed amendment and Landlord shall execute it promptly days after Landlord&#8217;s receipt from Tenant. Notwithstanding any of the foregoing to the contrary, the failure of Landlord to prepare such amendment or of either party to execute an amendment shall not affect the validity and effectiveness of the lease of the Offer Space in accordance with the terms and conditions of this Offer Right.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:10.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(g)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">If Tenant either fails or elects not to exercise its Offer Right as to the Offer Space covered by Landlord's Notice by not giving its Election Notice within the Election Notice Period, then Tenant's Offer Right shall not apply for twelve (12) months thereafter with respect to the space covered by Landlord's Notice and Landlord shall be free to lease such space and&#47;or otherwise grant options or rights to such space on any terms and conditions whatsoever free and clear of the Offer Right, and if upon expiration of such twelve (12) month period Landlord has not executed any lease or written agreement with respect to the applicable Offer Space, the procedure set forth above shall be repeated. Further, if Landlord executes with any third party or parties any new leases or written agreements permissible under this Section for any Offer Space covered by Landlord's Notice, the determination of whether or not such space again becomes Available so as again to be subject to Tenant's rights hereunder shall be made by applying the standards set forth above in Subsection (b) as to such new leases or written agreements in the same manner as if they had been entered into prior to the Offer Period.</font></div><div style="margin-top:11.4pt;padding-left:10.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(h)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">During any period that Tenant does not occupy at least &#91;***&#93; (&#91;***&#93;%) of the square footage of Rentable Area in the Premises at the time of exercise of such right or that there is an uncured Default by Tenant under the Lease, or any state of facts which with the passage of time or the giving of notice, or both, would constitute such a Default, the Offer Right shall not apply and shall be ineffective and suspended, and Landlord shall not be obligated to give a Landlord&#8217;s Notice as to any space which becomes Available during such suspension period, and Landlord shall not be obligated to negotiate (or enter any amendment) with respect to any Offer Space which was the subject of a pending Landlord&#8217;s Notice for which an amendment has not been fully executed, and during such suspension period Landlord shall be free to lease and&#47;or otherwise grant options or rights to such space on any terms and conditions whatsoever free and clear of the Offer Right. The Offer Right shall terminate upon any of the following&#58; (1) the termination of the Lease upon the occurrence of a Tenant default or otherwise&#59; (2) Landlord's recovery of possession of the Premises upon the occurrence of a Tenant default or otherwise&#59;</font></div><div style="padding-left:10.95pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3) rejection of the Lease in any bankruptcy proceeding.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.17pt">The Offer Right is personal to Codexis, Inc., a Delaware corporation, and may not be used by, and shall not be transferable or assignable (voluntarily or involuntarily) to any person or entity other than an Affiliate (as defined in Section 10.01 of the Original Lease) which is an assignee of the Lease and which has satisfied the requirements of Sections 10.01 and 10.05 of the Original Lease.</font></div><div style="margin-top:5.95pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:-0.05pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 10.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">USE OF HAZARDOUS MATERIALS</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Exhibit D to the Original Lease is hereby replaced with the new Exhibit D attached to this Amendment. The parties agree that (a) prior to adding any types or increasing any quantities of Hazardous Materials used or handled in the Premises, and (b) in any event (regardless of whether Tenant has added any types or increased any quantities of Hazardous Materials used or handled in the Premises), at least once per year, Tenant will provide updates, if any, to the</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">7</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_16"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-left:10.95pt;padding-right:11pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">information provided on such Exhibit D related to Tenant&#8217;s Hazardous Material Business Plan (including chemicals of any volume listed on 40 CFR Appendix A to Part 355) in writing to Landlord or Landlord&#8217;s property manager for Landlord&#8217;s review and reasonable approval, and Landlord&#8217;s approval in writing to Tenant will suffice as an update to such Exhibit D for purposes of the Lease.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:11pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 11.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">LIMITATION OF LANDLORD&#8217;S LIABILITY</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Notwithstanding any provision of the Existing Lease to the contrary (including, without limitation, Section 26.08 of the Original Lease), Tenant agrees, on its behalf and on behalf of its successors and assigns, that any liability or obligation of Landlord in connection with the Existing Lease shall only be enforced against Landlord&#8217;s equity interests in the Project up to a maximum of Five Million Dollars ($5,000,000.00) and in no event against any other assets of the Landlord, or Landlord&#8217;s officers or directors or partners, and that any liability of Landlord with respect to the Lease shall be so limited and Tenant shall not be entitled to any judgment in excess of such amount.</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:11pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 12.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">TIME OF ESSENCE</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Without limiting the generality of any other provision of the Existing Lease, time is of the essence to each and every term and condition of this Amendment.</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.7pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 13.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">BROKERS</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Notwithstanding any other provision of the Existing Lease to the contrary, Tenant represents that in connection with this Amendment it has not dealt with any real estate broker, sales person, or finder in connection with this Amendment, and no such person initiated or participated in the negotiation of this Amendment, except for CBRE, Inc. (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Landlord&#8217;s Broker</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;). Tenant hereby indemnifies and agrees to protect, defend and hold Landlord and Landlord&#8217;s Broker harmless from and against all claims, losses, damages, liability, costs and expenses (including, without limitation, attorneys&#8217; fees and expenses) by virtue of any broker, agent or other person claiming a commission or other form of compensation by virtue of alleged representation of, or dealings or discussions with, Tenant with respect to the subject matter of this Amendment, except for Landlord&#8217;s Broker. Tenant is not obligated to pay or fund any amount to Landlord&#8217;s Broker, and Landlord hereby agrees to pay such commission, if any, to which Landlord&#8217;s Broker is entitled in connection with the subject matter of this Amendment pursuant to Landlord&#8217;s separate written agreement with Landlord&#8217;s Broker. The provisions of this Section shall survive the expiration or earlier termination of the Lease.</font></div><div style="margin-top:3.4pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.65pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 14.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">ATTORNEYS&#8217; FEES</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Each party to this Amendment shall bear its own attorneys&#8217; fees and costs incurred in connection with the discussions preceding, negotiations for and documentation of this Amendment. Tenant shall be liable for, and shall pay upon demand, all costs and expenses, including reasonable attorneys&#8217; fees, incurred by Landlord in enforcing Tenant&#8217;s performance of its obligations under this Lease, or resulting from a Default by Tenant (regardless of whether suit is initiated), or incurred by Landlord in any litigation, negotiation or transaction in which Tenant causes Landlord, without Landlord&#8217;s fault, to become involved or concerned (including in any action or participation in or in connection with any case or proceeding under the Bankruptcy Code, 11 United States Code Sections 101 </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">et</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">seq</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">., or any successor statutes, in establishing or enforcing the right to indemnification, in appellate proceedings, or in connection with the enforcement or collection of any judgment obtained in any such suit or proceeding).</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 15.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">EFFECT OF HEADINGS&#59; RECITALS&#58; EXHIBITS</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The titles or headings of the various parts or sections hereof are intended solely for convenience and are not intended and shall not be deemed to or in any way be used to modify, explain or place any construction upon any of the provisions of this Amendment. Any and all Recitals set forth at the beginning of this Amendment are true and correct and constitute a part of this Amendment as if they had been set forth as covenants herein. Exhibits, schedules, plats and riders hereto which are referred to herein are a part of this Amendment.</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 16.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">ENTIRE AGREEMENT&#59; AMENDMENT</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. This Amendment taken together with the Existing Lease, together with all exhibits, schedules, riders and addenda to each, constitutes the full and complete agreement and understanding between the parties hereto and shall supersede all prior communications, representations, understandings or agreements, if any, whether oral or written, concerning the subject </font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">8</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">matter contained in this Amendment and the Existing Lease, as so amended, and no provision of the Lease</font></div><div style="text-align:justify"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">9</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:10.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as so amended may be modified, amended, waived or discharged, in whole or in part, except by a written instrument executed by all of the parties hereto.</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:10.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 17.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SANCTIONS LIST.</font></div><div style="margin-top:3.4pt"><font><br></font></div><div style="padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.73pt">Tenant hereby represents, warrants and covenants to Landlord that either&#58;</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:118.95pt;text-indent:-36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.12pt">Tenant is a Regulated Entity (as defined below), or</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.9pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.95pt">neither Tenant nor any person or entity that directly or indirectly has an ownership interest in Tenant of twenty-five percent (25%) or more, is or will be (A)(1) subject to a U.S. comprehensive sanctions program administered by the U.S. Department of Treasury, Office of Foreign Assets Control (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OFAC</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), (2) named on OFAC's U.S. Specially Designated Nationals list, or (3) named on OFAC's Sectoral Sanctions Identifications list ((1), (2) and (3) collectively the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">OFAC Sanctions Lists</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;),</font></div><div style="padding-left:10.95pt;padding-right:11pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(B) named on any other locally required sanctions lists (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Country Lists</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), or (C) named on the United Nations Security Council's sanctions list (the &#34;U.N. List&#34; and together with the OFAC Sanctions Lists and the Country Lists, the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sanctions Lists</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;).</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:11pt;padding-right:11.05pt;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.78pt">If, in connection with the Lease, there is one or more Guarantors of Tenant&#8217;s obligations under the Lease, then Tenant further represents, warrants and covenants that either&#58;</font></div><div style="margin-top:3.4pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:118.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.07pt">any such Guarantor is a Regulated Entity,</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.9pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.95pt">neither Guarantor nor any person or entity that directly or indirectly has an ownership interest in such Guarantor of twenty-five percent (25%) or more is or will be on the Sanctions Lists.</font></div><div style="margin-top:3.55pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For purposes of this Section, a &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Regulated Entity</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; shall mean a U.S. public company (including their documented wholly-owned subsidiaries) or any other entity, including a bank, that is regulated by the SEC, FINRA, or Federal Reserve.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.95pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 18.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">RATIFICATION</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant represents to Landlord that&#58; (a) the Existing Lease is in full force and effect and has not been modified except as provided by this Amendment&#59; (b) to Tenant&#8217;s knowledge, as of the Effective Date, there are no uncured defaults or unfulfilled obligations on the part of Landlord or Tenant&#59; and (c) Tenant is currently in possession of the entire Premises as of the Effective Date, and neither the Premises, nor any part thereof, is occupied by any subtenant or other party other than Tenant (except for any subleases that have been consented to by Landlord in writing).</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 19.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">AUTHORITY</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Each party represents and warrants to the other that it has full authority and power to enter into and perform its obligations under this Amendment, that the person executing this Amendment is fully empowered to do so, and that no consent or authorization is necessary from any third party. Landlord may request that Tenant provide Landlord evidence of Tenant&#8217;s authority.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:11pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 20.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">  </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">DISCLOSURE REGARDING CERTIFIED ACCESS SPECIALIST</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Pursuant to California</font></div><div style="padding-left:11pt;padding-right:10.6pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Civil Code Section 1938, Landlord hereby notifies Tenant that as of the date of this Amendment, the Premises have not undergone inspection by a &#8220;Certified Access Specialist&#8221; (&#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CASp</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) to determine whether the Premises meet all applicable construction-related accessibility standards under California Civil Code Section 55.53. Landlord hereby discloses pursuant to California Civil Code Section 1938 as follows&#58; &#8220;A Certified Access Specialist (CASp) can inspect the subject premises and determine whether the subject premises comply with all of the applicable construction-related accessibility standards under state law. Although state law does not require a CASp inspection of the subject premises, the commercial property owner or lessor may not prohibit the lessee or tenant from obtaining a CASp inspection of the </font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">10</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="padding-left:11pt;padding-right:10.6pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">subject premises for the occupancy or potential occupancy of the lessee or tenant, if requested by the lessee or</font></div><div style="text-align:justify"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">11</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:10.95pt;padding-right:10.6pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">tenant. The parties shall mutually agree on the arrangements for the time and manner of the CASp inspection, the payment of the fee for the CASp inspection, and the cost of making any repairs necessary to correct violations of construction-related accessibility standards within the premises.&#8221; Landlord and Tenant hereby acknowledge and agree that in the event that Tenant elects to perform a CASp inspection of the Premises hereunder (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Inspection</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), such Inspection shall be (a) performed at Tenant&#8217;s sole cost and expense, (b) limited to the Premises and (c) performed by a CASp who has been approved or designated by Landlord prior to the Inspection. Any Inspection must be performed in a manner which minimizes the disruption of business activities in the Building, and at a time reasonably approved by Landlord. Landlord reserves the right to be present during the Inspection. Tenant agrees to&#58; (i) promptly provide to Landlord a copy of the report or certification prepared by the CASp inspector upon request (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Report</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), and</font></div><div style="padding-left:10.95pt;padding-right:10.7pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.95pt">keep the information contained in the Report confidential, except to the extent required by Law, or to the extent disclosure is needed in order to complete any necessary modifications or improvements required to comply with all applicable accessibility standards under state or federal Law, as well as any other repairs, upgrades, improvements, modifications or alterations required by the Report or that may be otherwise required to comply with applicable Laws or accessibility requirements (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Access Improvements</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;). Tenant shall be solely responsible for the cost of Access Improvements to the Premises or the Building necessary to correct any such violations of construction-related accessibility standards identified by such Inspection as required by Law, which Access Improvements may, at Landlord&#8217;s option, be performed in whole or in part by Landlord at Tenant&#8217;s expense, payable as additional rent within ten (10) days following Landlord&#8217;s demand.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.95pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 21.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">ENERGY UTILITY USAGE</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. If Tenant is billed directly by a public utility with respect to Tenant&#8217;s energy usage at the Premises, then, upon written request, Tenant shall provide monthly energy utility usage for the Premises to Landlord for the period of time requested by Landlord (in electronic or paper format) or, at Landlord&#8217;s option, provide any written authorization or other documentation required for Landlord to request information regarding Tenant&#8217;s energy usage with respect to the Premises directly from the applicable utility company.</font></div><div style="margin-top:3.5pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 22.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">EXISTING TENANT ADDITIONS</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant shall not be required to remove any Tenant Additions existing in the Chesapeake Space or the Penobscot Space as of the Effective Date except for any Tenant Additions containing Hazardous Materials, Tenant&#8217;s trade fixtures, personal property and cabling and wiring installed for any of the foregoing.</font></div><div style="margin-top:3.6pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.9pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SECTION 23.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">COUNTERPARTS</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. This Amendment may be executed in duplicates or counterparts, or both, and such duplicates or counterparts together shall constitute but one original of the Amendment, and the signature of any party to any counterpart shall be deemed a signature to, and may be appended to, any other counterpart. Each duplicate and counterpart shall be equally admissible in evidence, and each original shall fully bind each party who has executed it.</font></div><div style="margin-top:3.45pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">&#91;Signature Page Follows&#93;</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">12</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_19"></div><hr style="page-break-after:always"><div style="min-height:74.16pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-left:10.95pt;padding-right:11.05pt;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">IN WITNESS WHEREOF, the parties hereto have executed this Amendment as of the latest date set forth below.</font></div><div style="margin-top:8.95pt;padding-left:10.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">TENANT&#58;&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CODEXIS, INC.,</font></div><div style="padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">a Delaware corporation</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By&#58; &#47;s&#47; Kevin Norrett</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Print Name&#58; Kevin Norrett</font></div><div style="margin-top:11.4pt;padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Title&#58; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Chief Operating Officer</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font></div><div style="margin-top:0.05pt;padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(Chairman of Board, President or Vice President)</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">November 20, 2024</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font></div><div><font><br></font></div><div style="margin-top:11.45pt"><font><br></font></div><div style="padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By&#58; &#47;s&#47; Georgia Erbez</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Print Name&#58; Georgia Erbez</font></div><div style="margin-top:11.4pt;padding-left:173.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Title&#58; Chief Financial Officer</font></div><div style="padding-left:173.8pt;padding-right:53.15pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:232%">(Secretary, Assistant Secretary, CFO or Assistant Treasurer) Date&#58; November 12, 2024</font></div><div><font><br></font></div><div style="padding-left:10.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">LANDLORD&#58;&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">METROPOLITAN LIFE INSURANCE COMPANY</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">,</font></div><div style="margin-top:0.05pt;padding-left:16.1pt;padding-right:16.1pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">a New York corporation</font></div><div><font><br></font></div><div style="padding-left:192.3pt;padding-right:141.2pt;text-indent:-18.5pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By&#58; MetLife Investment Advisors, LLC, a Delaware limited liability company, its investment manager</font></div><div style="margin-top:11.5pt;padding-left:190.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By&#58; &#47;s&#47; Michael Pace</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:191pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Print Name&#58; Michael Pace</font></div><div style="margin-top:11.4pt;padding-left:191pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Title&#58; Authorized Signatory and Managing Director</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:192.55pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; December 2, 2024</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:80%">13</font></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_22"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">EXHIBIT A</font></div><div style="margin-top:11.45pt;padding-left:171.05pt;padding-right:171.05pt;text-align:center;text-indent:0.25pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">WORKLETTER AGREEMENT (TENANT BUILD - ALLOWANCE)</font></div><div><font><br></font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.7pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Workletter Agreement (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Workletter</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) is attached to and a part of a certain Amendment by and between METROPOLITAN LIFE INSURANCE COMPANY, a New York corporation, as Landlord, and CODEXIS, INC., a Delaware corporation, as Tenant, for the Premises. Terms used herein and not defined herein shall have the meaning of such terms as defined elsewhere in the Lease. For purposes of this Workletter, references to &#8220;State&#8221; and &#8220;City&#8221; shall mean the State and City in which the Building is located.</font></div><div><font><br></font></div><div style="padding-left:47pt;text-indent:-36.05pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.72pt;text-decoration:underline">Landlord Work</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.45pt;padding-left:47pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There shall be no Landlord Work.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:47pt;text-indent:-36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.67pt;text-decoration:underline">Tenant's Plans</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:19.29pt;text-decoration:underline">Description</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. At its expense, Tenant shall employ&#58;</font></div><div style="margin-top:11.4pt;padding-left:46.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.17pt">one or more architects reasonably satisfactory to Landlord and licensed by the State (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant's Architect</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) to prepare architectural drawings and specifications for all layout and Premises improvements not included in, or requiring any change or addition to, the AS IS condition and Landlord Work, if any. Landlord hereby approves of &#91;***&#93; as a permitted &#8220;Tenant&#8217;s Architect&#8221;.</font></div><div><font><br></font></div><div style="padding-left:46.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.95pt">one or more engineers reasonably satisfactory to Landlord and licensed by the State (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant's Engineers</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) to prepare structural, mechanical and electrical working drawings and specifications for all Premises improvements not included in, or requiring any change or addition to, the AS IS condition and Landlord Work, if any.</font></div><div><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">All such drawings and specifications are referred to herein as &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant's Plans</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;. Tenant's Plans shall be in form and detail sufficient to secure all applicable governmental approvals. Tenant's Architect shall be responsible for coordination of all engineering work for Tenant's Plans and shall coordinate with any consultants retained by Tenant in connection with the design and installation of improvements to the Premises (the use of such consultants is subject to Landlord&#8217;s consent), and Landlord's architect or other representative to assure the consistency of Tenant's Plans with the Base Building Work and Landlord Work (if any).</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.9pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tenant shall pay Landlord, within thirty (30) days of receipt of each invoice from Landlord, the cost incurred by Landlord for Landlord's architects and engineers to review Tenant's Plans for consistency of same with the Base Building Work and Landlord Work, if any. Tenant's Plans shall also include the following&#58;</font></div><div style="margin-top:11.45pt;padding-left:46.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)  Final Space Plan&#58; The &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Final Space Plan</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34; for the Premises shall include a full and accurate description of room titles, floor loads, alterations to the Base Building or Landlord Work (if any) or requiring any change or addition to the AS IS condition, and the dimensions and location of all partitions, doors, aisles, plumbing (and furniture and equipment to the extent same affect floor loading) and include a drop ceiling for the entire Premises and HVAC distributed throughout the entire Premises except the shipping and warehouse areas. The Final Space Plan shall (i) be compatible with the design, construction, systems and equipment of the Base Building and Landlord Work, if any&#59; (ii) specify only materials, equipment and installations which are new and of a grade and quality no less than existing components of the Building when they were originally installed (collectively, (i) and (ii) may be referred to as &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Building Standard</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; or &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Building Standards</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;)&#59;</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-1</font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="padding-left:46.95pt;padding-right:10.7pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(iii)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:11.73pt">comply with Laws, (iv) be capable of logical measurement and construction, and (v) contain all such information as may be required for the preparation of the Mechanical and Electrical Working</font></div><div style="text-align:justify"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-2</font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:46.95pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Drawings and Specifications (including, without limitation, a capacity and usage report, from engineers designated by Landlord pursuant to Section 2.1(b). below, for all mechanical and electrical systems in the Premises).</font></div><div style="margin-top:11.5pt;padding-left:46.95pt;padding-right:10.7pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Mechanical and Electrical Working Drawings and Specifications&#58; Tenant shall employ engineers reasonably satisfactory to Landlord to prepare Mechanical and Electrical Working Drawings and Specifications showing complete plans for electrical, life safety, automation, plumbing, water, and air cooling, ventilating, heating and temperature control and shall employ engineers designated by Landlord to prepare for Landlord a capacity and usage report (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Capacity Report</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) for all mechanical and electrical systems in the Premises.</font></div><div><font><br></font></div><div style="padding-left:47pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.34pt">Issued for Construction Documents&#58; The &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Issued for Construction Documents</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34; shall consist of all drawings (1&#47;8&#34; scale) and specifications necessary to construct all Premises improvements including, without limitation, architectural and structural working drawings and specifications and Mechanical and Electrical Working Drawings and Specifications and all applicable governmental authorities plan check corrections.</font></div><div><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Approval by Landlord</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant's Plans and any revisions thereof shall be subject to Landlord's approval, which approval or disapproval&#58;</font></div><div style="margin-top:11.45pt;padding-left:46.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.17pt">shall not be unreasonably withheld, provided however, that Landlord may disapprove Tenant&#8217;s Plans in its sole and absolute discretion if they (a) adversely affect the structural integrity of the Building, including applicable floor loading capacity&#59; (b) adversely affect any of the Building Systems (as defined below), the Common Areas or any other tenant space (whether or not currently occupied)&#59; (c) fail to fully comply with Laws, (d) adversely affect the exterior appearance of the Building&#59; (e) provide for improvements which do not meet or exceed the Building Standards&#59; or (f) involve any installation on the roof (except with respect to HVAC installation on the roof), or otherwise affect the roof, roof membrane or any warranties regarding either. Building Systems collectively shall mean the structural, electrical, mechanical (including, without limitation, heating, ventilating and air conditioning), plumbing, fire and life-safety (including, without limitation, fire protection system and any fire alarm), communication, utility, gas (if any), and security (if any) systems in the Building.</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:46.95pt;padding-right:10.9pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.95pt">shall not be delayed beyond ten (10) business days with respect to initial submissions and major change orders (those which impact Building Systems or any other item listed in subpart</font></div><div style="padding-left:46.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(i) of Section 2.2 above) and beyond five (5) business days with respect to required revisions and any other change orders.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If Landlord disapproves of any of Tenant's Plans, Landlord shall advise Tenant of what Landlord disapproves in reasonable detail. After being so advised by Landlord, Tenant shall submit a redesign, incorporating the revisions required by Landlord, for Landlord's approval. The approval procedure shall be repeated as necessary until Tenant's Plans are ultimately approved. Approval by Landlord shall not be deemed to be a representation or warranty by Landlord with respect to the safety, adequacy, correctness, efficiency or compliance with Laws of Tenant's Plans. Tenant shall be fully and solely responsible for the safety, adequacy, correctness and efficiency of Tenant's Plans and for the compliance of Tenant's Plans with any and all Laws.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Landlord Cooperation</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Landlord shall cooperate with Tenant and make good faith efforts to coordinate Landlord's construction review procedures to expedite the planning, commencement, progress and completion of Tenant Alterations. Landlord shall complete its review of each stage of Tenant's Plans and any revisions thereof and communicate the results of such review within the time periods set forth in Section 2.2 above.</font></div><div><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-3</font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">City Requirements</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Any changes in Tenant's Plans which are made in response to requirements of the applicable governmental authorities and&#47;or changes which affect the Base Building Work shall be immediately submitted to Landlord for Landlord's review and approval.</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-4</font></div></td></tr></table></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_25"></div><hr style="page-break-after:always"><div style="min-height:79.92pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.5pt;padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.5.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">&#34;As Built&#34; Drawings and Specifications</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. A CADD-DXF diskette file and a set of black line drawings of all &#34;as built&#34; drawings and specifications of Tenant&#8217;s Work in the Premises (reflecting all field changes and including, without limitation, architectural, structural, mechanical and electrical drawings and specifications) prepared by Tenant's Architect and Engineers or by Contractors (defined below) shall be delivered by Tenant at Tenant's expense to the Landlord within thirty (30) days after completion of the Tenant Alterations. If Landlord has not received such drawings and diskette(s) within thirty (30) days, Landlord may give Tenant written notice of such failure. If Tenant does not produce the drawings and diskette(s) within ten (10) days after Landlord&#8217;s written notice, Landlord may, at Tenant&#8217;s sole cost which may be deducted from the Allowance, produce the drawings and diskette(s) using Landlord&#8217;s personnel, managers, and outside consultants and contractors. Landlord shall receive an hourly rate reasonable for such production.</font></div><div><font><br></font></div><div style="padding-left:47pt;text-indent:-36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.67pt;text-decoration:underline">Tenant Alterations</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.4pt;padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Tenant Alterations Defined</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. All tenant improvement work required by the Issued for Construction Documents (including, without limitation, any approved changes, additions or alterations pursuant to Section 6 below) is referred to in this Workletter as &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant Alterations</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.&#34;</font></div><div style="margin-top:0.1pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Tenant to Construct</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant shall construct all Tenant Alterations pursuant to this Workletter, and except to the extent modified by or inconsistent with express provisions of this Workletter, pursuant with the provisions of the terms and conditions of Article Nine of the Lease, governing Tenant Alterations (except to the extent modified by this Workletter) and all such Tenant Alterations shall be considered &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant Alterations</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34; for purposes of the Lease.</font></div><div style="margin-top:11.4pt;padding-left:11pt;padding-right:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Construction Contract</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. All contracts and subcontracts for Tenant Alterations shall include any terms and conditions reasonably required by Landlord.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.95pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Contractor</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant shall select one or more contractors to perform the Tenant Alterations (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Contractor</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;) subject to Landlord&#8217;s prior written approval, which shall not unreasonably be withheld.</font></div><div style="margin-top:11.45pt;padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.5.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:19.29pt;text-decoration:underline">Division of Landlord Work and Tenant Alterations</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant Alterations is defined in Section</font></div><div style="padding-left:11pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.1 above and Landlord Work, if any, is defined in Section 1.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.95pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.6.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Restoration</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Notwithstanding anything to the contrary in the Existing Lease or in this Workletter, (a) if so requested by Tenant in writing (and prominently in all capital and bold lettering which also states that such request is pursuant to Section 3.6 at the time Tenant requests approval of any Tenant Alterations, Landlord shall advise Tenant at the time of Landlord&#8217;s approval of such Tenant Alterations as to whether Landlord will require that such Tenant Alterations be removed by Tenant from the Premises&#59; provided, however, regardless of the foregoing, in any event, Landlord may require removal of any Tenant Alterations containing Hazardous Material and all Tenant&#8217;s trade fixtures, and, subject to Section 6.03 of the Original Lease, cabling and wiring installed for Tenant&#8217;s personal property or trade fixtures, and (b) except for such Tenant Alterations containing Hazardous Material, Tenant&#8217;s trade fixtures, and such cabling and wiring, Landlord shall not require removal of any improvements that are in the nature of general office or lab improvements.</font></div><div><font><br></font></div><div style="padding-left:47pt;text-indent:-36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.67pt;text-decoration:underline">Tenant's Expense</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:11pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tenant agrees to pay for all Tenant Alterations, including, without limitation, the costs of design thereof, whether or not all such costs are included in the &#8220;Permanent Improvement Costs&#8221; (defined below). Subject to the terms and conditions of this Workletter, Landlord shall provide an &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Allowance</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; towards the cost of design and construction of the Tenant Alterations (including, without limitation, the installation of an emergency generator if Tenant elects, at Tenant&#8217;s sole discretion, to install the same) as follows&#58;</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-5</font></div></td></tr></table></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_28"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-left:10.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Forty-Two and 00&#47;100 Dollars ($42.00) per square foot of Rentable Area of the Penobscot Space (i.e., $2,775,360.00)&#59; provided, however, Tenant must spend not less than Twenty-One and 00&#47;100 ($21.00) per square foot of Rentable Area of the Penobscot Space for Permanent Improvements in the Penobscot Space (i.e., $1,387,680.00), and thereafter Tenant may use the remainder of such Allowance for Permanent Improvements in any portion of the Penobscot Space or the Chesapeake Space&#59; and</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">Twenty-Five and 00&#47;100 Dollars ($25.00) per square foot of Rentable Area of the Chesapeake Space (i.e., $275,500.00)&#59; provided, however, Tenant must spend not less than Twelve and 50&#47;100 ($12.50) per square foot of Rentable Area of the Chesapeake Space for Permanent Improvements in the Chesapeake Space (i.e., $137,750.00), and thereafter Tenant may use the remainder of such Allowance for Permanent Improvements in any portion of the Penobscot Space or the Chesapeake Space.</font></div><div style="margin-top:11.4pt;padding-left:10.95pt;padding-right:10.95pt;text-align:justify;text-indent:-0.05pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The term &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Permanent Improvement Costs</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; shall mean the actual and reasonable costs of construction of that Tenant Alterations which constitutes permanent improvements to the Premises, actual and reasonable costs of design and management thereof and governmental permits therefor, and costs incurred by Landlord for Landlord&#8217;s architects and engineers pursuant to Section 2.1, and Landlord&#8217;s construction administration fee (defined in Section 7.10 below). Permanent Improvement Costs shall exclude costs of &#8220;Tenant&#8217;s FF&#38;E&#8221; (defined below) and shall include an emergency generator as provided above if Tenant elects to install the same For purposes of this Workletter, &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Tenant&#8217;s FF&#38;E</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; shall mean Tenant&#8217;s furniture, furnishings, telephone systems, computer systems, equipment, any other personal property or fixtures, and installation thereof. If Tenant does not utilize one hundred percent (100%) of the Allowance for Permanent Improvement Costs no later than the date that is thirty (30) months following the Effective Date and submit full and complete application(s) for disbursement thereof pursuant to Section 5 below, Tenant shall have no right to the unused portion of the Allowance.</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:47pt;text-indent:-36.05pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.72pt;text-decoration:underline">Application and Disbursement of the Allowance</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.39pt">Tenant shall prepare a budget for all Tenant Alterations, including the Permanent Improvement Costs and all other costs of the Tenant Alterations (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Budget</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), which Budget shall be subject to the reasonable approval of Landlord and may be reasonably updated by Tenant from time to time. Such Budget shall be supported by such other documentation as Landlord may require to evidence the total costs. To the extent the Budget exceeds the available Allowance (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Excess Cost</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;), Tenant shall be solely responsible for payment of such Excess Cost (subject to any remaining Allowance). Further, prior to any disbursement of the Allowance by Landlord, Tenant shall pay and disburse its own funds for all that portion of the Permanent Improvement Costs equal to the sum of (a) the Permanent Improvement Costs in excess of the Allowance&#59; plus (b) the amount of &#8220;Landlord&#8217;s Retention&#8221; (defined below). &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Landlord&#8217;s Retention</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; shall mean an amount equal to ten percent (10%) of the Allowance, which Landlord shall retain out of the Allowance and shall not be obligated to disburse unless and until after Tenant has completed the Tenant Alterations and complied with Section 5.4 below. Further, Landlord shall not be obligated to make any disbursement of the Allowance unless and until Tenant has provided Landlord with (i) bills and invoices covering all labor and material expended and used in connection with the particular portion of the Tenant Alterations for which Tenant has requested reimbursement, (ii) an affidavit from Tenant stating that all of such bills and invoices have either been paid in full by Tenant or are due and owing, and all such costs qualify as Permanent Improvement Costs, (iii) contractors affidavit covering all labor and materials expended and used, (iv) Tenant, contractors and architectural completion affidavits (as applicable), and (v) valid mechanics' lien releases and waivers pertaining to any completed portion of the Tenant Alterations which shall be conditional or unconditional, as applicable, all as provided pursuant to Section 5.2 and 5.4 below.</font></div><div><font><br></font></div><div style="padding-left:10.95pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.39pt">Upon Tenant's full compliance with the provisions of Section 5, and if Landlord determines that there are no applicable or claimed stop notices (or any other statutory or equitable liens of anyone performing any of Tenant Alterations or providing materials for Tenant Alterations) or actions thereon, Landlord shall disburse the applicable portion of the Allowance as follows&#58;</font></div><div style="text-align:justify"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-6</font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:46.95pt;padding-right:10.75pt;text-align:justify;text-indent:28.8pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:20.03pt">In the event of conditional releases, to the respective contractor, subcontractor, vendor, or other person who has provided labor and&#47;or services in connection with the Tenant Alterations, upon the following terms and conditions&#58; (i) such costs are included in the Budget, are Permanent Improvement Costs, are covered by the Allowance, and Tenant has completed and delivered to Landlord a written request for payment, in form reasonably approved by Landlord, setting forth the exact name of the contractor, subcontractor or vendor to whom payment is to be made and the date and amount of the bill or invoice, (ii) the request for payment is accompanied by the documentation set forth in Section 5.1&#59; and (iii) Landlord, or Landlord's appointed representative, has inspected and approved the work for which Tenant seeks payment&#59; or</font></div><div style="margin-top:11.5pt;padding-left:46.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.83pt">In the event of unconditional releases, directly to Tenant upon the following terms and conditions&#58; (i) Tenant seeks reimbursement for costs of Tenant Alterations which have been paid by Tenant, are included in the Budget, are Permanent Improvement Costs, and are covered by the Allowance&#59; (ii) Tenant has completed and delivered to Landlord a request for payment, in form reasonably approved by Landlord, setting forth the name of the contractor, subcontractor or vendor paid and the date of payment, (iii) the request for payment is accompanied by the documentation set forth in Section 5.1&#59; and (iv) Landlord, or Landlord's appointed representative, has inspected and approved the work for which Tenant seeks reimbursement.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt">Tenant shall provide Landlord with the aforementioned documents by the fifteenth (15</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%">t)h</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) of the month and payment shall be made within thirty (30) days after such documentation is provided.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt">Prior to Landlord disbursing the Landlord&#8217;s Retention to Tenant, Tenant shall submit to Landlord the following items within thirty (30) days after completion of the Tenant Alterations or such longer period as Landlord may permit&#58; (i) &#8220;As Built&#8221; drawings and specifications pursuant to Section 2.5 above,</font></div><div style="padding-left:11pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(ii) all unconditional lien releases from all general contractor(s) and subcontractor(s) performing work, (iii) a &#8220;Certificate of Completion&#8221; prepared by Tenant&#8217;s Architect, and (iv) a final budget with supporting documentation detailing all costs associated with the Permanent Improvement Costs.</font></div><div><font><br></font></div><div style="padding-left:46.95pt;text-align:justify;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.62pt;text-decoration:underline">Changes, Additions or Alterations</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:10.9pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If Tenant desires to make any non-de minimis change, addition or alteration or desires to make any change, addition or alteration to any of the Building Systems after approval of the Issued for Construction Documents, Tenant shall prepare and submit to Landlord plans and specifications with respect to such change, addition or alteration. Any such change, addition or alteration shall be subject to Landlord's approval in accordance with the provisions of Section 2.2 of this Workletter. Tenant shall be responsible for any submission to and plan check and permit requirements of the applicable governmental authorities. Tenant shall be responsible for payment of the cost of any such change, addition or alteration if it would increase the Budget and Excess Cost previously submitted and approved pursuant to Section 5 above (subject to any remaining Allowance).</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:47pt;text-indent:-36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.67pt;text-decoration:underline">Miscellaneous</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.4pt;padding-left:11pt;padding-right:10.95pt;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Scope</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Except as otherwise set forth in the Lease, this Workletter shall not apply to any space hereafter added to the Premises by Lease option or otherwise.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:11pt;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt">Tenant Alterations shall include (at Tenant's expense subject to application of the Allowance towards the costs of such items) for all of the Premises, when applicable&#58;</font></div><div style="margin-top:11.45pt;padding-left:118.9pt;text-align:justify;text-indent:-35.9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.68pt">Landlord approved lighting sensor controls as necessary to meet applicable Laws&#59;</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:118.9pt;text-align:justify;text-indent:-35.9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.68pt">Building Standard fluorescent fixtures in all Building office areas&#59;</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-7</font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="padding-left:83pt;padding-right:10.75pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.34pt">Building Standard meters for each of electricity and chilled water used by Tenant shall be connected to the Building&#8217;s system and shall be tested and certified prior to Tenant&#8217;s occupancy of the Premises by a State certified testing company&#59;</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-8</font></div></td></tr></table></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_31"></div><hr style="page-break-after:always"><div style="min-height:79.92pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.5pt;padding-left:118.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.73pt">Building Standard ceiling systems (including tile and grid) and&#59;</font></div><div style="margin-top:11.4pt;padding-left:83pt;padding-right:10.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(e)</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:12.78pt">Building Standard air conditioning distribution and Building Standard air terminal units.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.95pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Sprinklers</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Subject to any terms, conditions and limitations set forth herein, Landlord shall provide an operative sprinkler system consisting of mains, laterals, and heads &#34;AS IS&#34; on the date of delivery of the Premises to Tenant. Tenant shall pay for piping distribution, drops and relocation of, or additional, sprinkler system heads and Building firehose or firehose valve cabinets, if Tenant's Plans and&#47;or any applicable Laws necessitate such.</font></div><div><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Floor Loading</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Floor loading capacity shall be within building design capacity which is 150 pounds per square foot. Tenant may exceed floor loading capacity with Landlord's consent, at Landlord's sole discretion and must, at Tenant's sole cost and expense, reinforce the floor as required for such excess loading.</font></div><div><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.5.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Work Stoppages</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. If any work on the Real Property other than Tenant Alterations is delayed, stopped or otherwise affected by construction of Tenant Alterations, Tenant shall immediately take those actions necessary or desirable to eliminate such delay, stoppage or effect on work on the Real Property other than Tenant Alterations.</font></div><div><font><br></font></div><div style="padding-left:11pt;padding-right:11.05pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.6.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Life Safety</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant (or Contractor) shall employ the services of a fire and life-safety subcontractor reasonably satisfactory to Landlord for all fire and life-safety work at the Building.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.7.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Locks</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant may purchase locks, cylinders and keys for the Premises from its own vendor, provided that (a) such vendor and the locks, cylinders and keys to be used are subject to Landlord&#8217;s prior written approval&#59; (b) of a make and model which are functional, operable and compatible with Landlord&#8217;s master key system&#59; (c) a master key or keys are provided to Landlord, of which Landlord may place one such master key in the &#8220;knox box&#8221; for use by the fire department and emergency personnel in the event of an emergency and may retain another key for Landlord's use for entry permitted under the Lease&#59; and (d) the contact information for Tenant&#8217;s vendor for locks, cylinders and keys used in the Premises shall be provided to Landlord with Tenant&#8217;s request for approval.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.8.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.34pt;text-decoration:underline">Authorized Representatives</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Tenant has designated Neill Bickel to act as Tenant's representative with respect to the matters set forth in this Workletter. Such representative(s) shall have full authority and responsibility to act on behalf of Tenant as required in this Workletter. Tenant may add or delete authorized representatives upon five (5) business days&#8217; notice to Landlord.</font></div><div><font><br></font></div><div style="padding-left:82.95pt;text-indent:-35.95pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.9.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:19.29pt;text-decoration:underline">Intentionally Omitted</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:11pt;padding-right:10.95pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7.10.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:2.78pt;text-decoration:underline">Fee</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Landlord shall receive a fee equal to one percent (1.0%) of the Allowance for Landlord&#8217;s review and supervision of construction of the Tenant Alterations, which fee shall be paid by Landlord applying one percent (1.0%) of the Allowance in payment thereof. Such fee is in addition to Tenant&#8217;s reimbursement of costs incurred by Landlord pursuant to other provisions hereof, including, without limitation, for Landlord's architects and engineers to review Tenant's Plans.</font></div><div><font><br></font></div><div style="padding-left:47pt;text-indent:-36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:27.67pt;text-decoration:underline">Force and Effect</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:11.4pt;padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The terms and conditions of this Workletter shall be construed to be a part of the Lease and shall be deemed incorporated in the Lease by this reference. Should any inconsistency arise between this Workletter and the Lease as to the specific matters which are the subject of this Workletter, the terms and conditions of this Workletter shall control.</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A-9</font></div></td></tr></table></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_34"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">EXHIBIT B</font></div><div style="margin-top:11.45pt;padding-left:32.1pt;padding-right:32.1pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">FAIR MARKET RENTAL RATE</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:10.95pt;padding-right:10.75pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.72pt;text-decoration:underline">Definition of Fair Market Rental Rate</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Fair Market Rental Rate</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34; shall mean the Monthly Base Rent equal to the monthly base rental per rentable square foot which a tenant would pay and which a willing landlord would accept for space comparable to the Premises in the Building and in other buildings in Seaport Centre and along the Highway 101 corridor in Redwood City, Redwood Shores, San Carlos and Belmont (the &#8220;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Applicable Market</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) for the period for which such rental is to be paid and for a lease on terms substantially similar to those of the Lease (including, without limitation, those applicable to Taxes, Operating Expenses and exclusions, but also considering so-called net and triple net leases, and leases utilizing operating expense stops or base years, and making appropriate adjustment between such leases and this Lease, as described below), based on prevailing market conditions in the Applicable Market at the time such determination is made (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Comparable Transactions</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;). Without limiting the generality of the foregoing, Comparable Transactions shall be for a term similar to the term of tenancy and for space comparable in use, floor levels, view and orientation, square footage and location within the Building and in the Applicable Market as the transaction for which Fair Market Rental Rate is being determined&#59; however, leases of unusual or odd shaped spaces shall not be considered. In any determination of Fair Market Rental Rate, the stated or contract monthly net or base rental in Comparable Transactions shall be appropriately adjusted to take into account the different terms and conditions prevailing in such transactions and those present in the Lease, including, without limitation&#58; (a) the extent to which average annual expenses and taxes per rentable square foot payable by tenants in Comparable Transactions vary from those payable by Tenant under the Lease, and so, for example, if the Lease provides for payment of Rent Adjustments and&#47;or certain Operating Expenses on the basis of increases over a base year, then the rate of Monthly Base Rent under the Lease shall be based upon a step-up to change the calendar year which serves as the base year for calculation of the base for such Operating Expenses for the Option Term to be the full calendar year in which the Option Term commences, and such step-up shall be considered in the determination of the Fair Market Rental Rate&#59; (b) tenant improvements, value of existing tenant improvements, the concessions, if any, being given by landlords in Comparable Transactions, such as parking charge abatement, free rent or rental abatement applicable after substantial completion of any tenant improvements (and no adjustment shall be made for any free or abated rent during any construction periods), loans at below-market interest rates, moving allowances, space planning allowances, lease takeover payments and work allowances, as compared to any tenant improvement, refurbishment or repainting allowance given to Tenant under the Lease for the space for which Fair Market Rental Rate is being determined&#59; (c) the brokerage commissions, fees and bonuses payable by landlords in Comparable Transactions (whether to tenant's agent, such landlord or any person or entity affiliated with such landlord), as compared to any such amounts payable by Landlord to the broker(s) identified with respect to the transaction for which Fair Market Rental Rate is being determined&#59;</font></div><div style="padding-left:10.95pt;padding-right:10.85pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d) the time value of money&#59; (e) any material difference between the definition of rentable area and the ratio of project rentable to useable square feet in Comparable Transactions, as compared to such figures applicable to the space for which Fair Market Rental Rate is being determined&#59; and (f) the extent to which charges for parking by tenants in Comparable Transactions vary from those payable by Tenant under the Lease.</font></div><div style="margin-top:11.45pt;padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.67pt;text-decoration:underline">Sealed Estimates</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In the event the Lease requires Fair Market Rental Rate to be determined in accordance with this Exhibit, Landlord and Tenant shall meet within ten (10) business days thereafter and each simultaneously submit to the other in a sealed envelope its good faith estimate of Fair Market Rental Rate (the &#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Estimates</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;). If the higher Estimate is not more than one hundred five percent (105%) of the lower Estimate, then Fair Market Rental Rate shall be the average of the two Estimates. If such simultaneous submission of Estimates does not occur within such ten (10) business day period, then either party may by notice to the other designate any reasonable time within five (5) business days thereafter and any reasonable place at or near the Building for such meeting to take place. In the event only one party submits an Estimate at that meeting, such Estimate shall be Fair Market Rental. In the event neither party submits an Estimate at that meeting, the transaction for which Fair Market Rental Rate is being determined shall be deemed cancelled and of no further force or effect.</font></div><div style="text-align:justify"><font><br></font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">B-1</font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.67pt;text-decoration:underline">Selection of Arbitrators</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. If the higher Estimate is more than one hundred five percent (105%) of the lower Estimate, then either Landlord or Tenant may, by written notice to the other within five (5) business days after delivery of Estimates at the meeting, require that the disagreement be resolved by arbitration. In the event neither party gives such notice, the transaction for which Fair Market Rental Rate is being determined shall be deemed cancelled and of no further force or effect. Within five (5) business days after such notice, the parties shall select as arbitrators three (3) mutually acceptable independent MAI appraisers with experience in real estate activities, including at least five (5) years experience in appraising comparable life science space in the Applicable Market (&#34;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Qualified Appraisers</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#34;). If the parties cannot timely agree on such arbitrators, then within the following five (5) business days, each shall select and inform the other party of one (1) Qualified Appraiser and within a third period of five (5) business days, the two appraisers (or if only one (1) has been duly selected, such single appraiser) shall select as arbitrators a panel of three additional Qualified Appraisers, which three arbitrators shall proceed to determine Fair Market Rental Rate pursuant to Section 4 of this Exhibit. Both Landlord and Tenant shall be entitled to present evidence supporting their respective positions to the panel of three arbitrators.</font></div><div><font><br></font></div><div style="padding-left:11pt;padding-right:10.8pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.67pt;text-decoration:underline">Arbitration Procedure</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Once a panel of arbitrators has been selected as provided above, then as soon thereafter as practicable each arbitrator shall select one of the two Estimates as the one which, in its opinion, is closer to Fair Market Rental Rate. Upon an Estimate's selection by two (2) of the arbitrators, it shall be the applicable Fair Market Rental Rate and such selection shall be binding upon Landlord and Tenant. If the arbitrators collectively determine that expert advice is reasonably necessary to assist them in determining Fair Market Rental Rate, then they may retain one or more qualified persons, including but not limited to legal counsel, brokers, architects or engineers, to provide such expert advice. The party whose Estimate is not chosen by the arbitrators shall pay the costs of the arbitrators and any experts retained by the arbitrators. Any fees of any counsel or expert engaged directly by Landlord or Tenant, however, shall be borne by the party retaining such counsel or expert.</font></div><div style="margin-top:11.5pt;padding-left:11pt;padding-right:10.85pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:16.67pt;text-decoration:underline">Rent Pending Determination of Fair Market Rental Rate</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. In the event that the determination of Fair Market Rental Rate has not been concluded prior to commencement of the applicable rental period for the applicable space for which the Fair Market Rental Rate is being determined, Tenant shall pay Landlord Monthly Base Rent and Rent Adjustment Deposits as would apply under Landlord&#8217;s Estimate pursuant to Section 2 of this Exhibit until the Fair Market Rental Rate is determined. In the event that the Fair Market Rental Rate subsequently determined is different from the amount paid for the applicable period, then within thirty (30) days after such determination, Tenant shall pay Landlord any greater amounts due and Landlord shall credit Tenant (against the next Monthly Base Rent installments due) for any reduction in the amounts due.</font></div><div style="height:46.8pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.877%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-top:0.6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">B-2</font></div></td></tr></table></div></div></div><div id="if01b42d5273c4e74b82ad6d18d9807ff_37"></div><hr style="page-break-after:always"><div style="min-height:51.12pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="margin-top:3.95pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">EXHIBIT D</font></div><div style="margin-top:11.45pt;padding-left:0.12pt;padding-right:0.12pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PERMITTED HAZARDOUS MATERIAL</font></div><div style="margin-top:11.45pt;padding-right:0.25pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#91;***&#93;</font></div><div><font><br></font></div><div><font><br></font></div><div style="height:13.68pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.15C
<SEQUENCE>3
<FILENAME>codexis-ex1015cseparationa.htm
<DESCRIPTION>EX-10.15C
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i3561de80b2e541638e6dcd90483bc0fc_1"></div><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="margin-top:3.95pt;padding-right:0.9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#91;*&#93; &#61; CERTAIN MARKED INFORMATION HAS BEEN OMITTED FROM THIS EXHIBIT BECAUSE IT IS BOTH NOT MATERIAL AND IS THE TYPE THAT THE REGISTRANT TREATS AS PRIVATE OR CONFIDENTIAL.</font></div><div style="margin-top:3.95pt;padding-left:0.45pt;padding-right:0.45pt;text-align:center"><font><br></font></div><div style="margin-top:3.95pt;padding-left:0.45pt;padding-right:0.45pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CODEXIS, INC.</font></div><div style="margin-top:9pt"><font><br></font></div><div style="padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">October 14, 2024</font></div><div style="margin-top:12.1pt;padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Sri Ryali</font></div><div style="margin-top:11.95pt;padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Re&#58;&#160;&#160;&#160;&#160;Separation and Consulting Agreement</font></div><div style="margin-top:12.05pt;padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Dear Sri&#58;</font></div><div style="margin-top:11.85pt;padding-left:5pt;padding-right:5.7pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">This letter sets forth the terms of the separation and consulting agreement (this &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) that Codexis, Inc. (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Company</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) is offering to you to aid in your employment transition from the Company.</font></div><div style="margin-top:12.1pt;padding-left:5pt;padding-right:5.75pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">Separation Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You agree and acknowledge that your Company employment  terminated on October 4, 2024 (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Separation Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). As of and following the Separation Date, (a) you were no longer employed as the Company&#8217;s Chief Financial Officer, and (b) you no longer held any other employment, director, manager, or officer positions with the Company, its direct and indirect parents, and&#47;or its direct and indirect subsidiaries (the Company, along with its direct and indirect parents and subsidiaries, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Company Group</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-top:12.6pt;padding-left:5pt;padding-right:5.55pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">Severance Benefits</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Pursuant to the terms and conditions of that certain Change of Control Severance Agreement, effective as of January 27, 2023, entered into by and between you and the Company (as amended) (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Severance Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), as enhanced by this Agreement, the Company agrees that your employment termination will be treated as a &#8220;Covered Termination Outside of a Change of Control Period.&#8221; As such, if&#58; (i) you sign, date and return this Agreement to the Company on or within twenty-one (21) calendar days from the date of this Agreement and you allow it become effective in accordance with its terms, and (ii) you comply with the terms of this Agreement and your other Continuing Obligations owed to the Company Group as detailed in Section 6 below (collectively, clauses (i) and (ii), the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Conditions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), the Company will provide you with the following &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Severance Benefits</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;&#58;</font></div><div style="margin-top:0.1pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.75pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.23pt">Severance Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Severance pay equal to your final monthly base salary multiplied by twelve (12) (the total severance amount of $463,499.92) (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Severance Payments</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). The Severance Payments will be paid to you, subject to required payroll deductions and withholdings, on the Company&#8217;s regular payroll schedule in effect following the Separation Date in the form of monthly salary continuation through December 31, 2024&#59; provided, however that any such payments that are otherwise scheduled to be made prior to the Effective Date of this Agreement (as defined in Section 10(d) below) shall instead accrue and be made on the first administratively practicable payroll date following the Effective Date (but in any event no later than 60 days following the Separation Date), with the remaining monthly salary continuation payments from January 1, 2025 through the twelve (12) month anniversary of the Separation Date to be paid to you in a lump sum payment on the Company&#8217;s first regular payroll schedule following January 1, 2025 (but in any event no later than January 31, 2025) The Severance Payments pursuant to this Section 2(a) are intended to be exempt from Section 409A of the Internal </font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">1</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="padding-left:5pt;padding-right:5.75pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Revenue Code of 1986, as amended (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Code</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) under the separation pay plan exemption pursuant to Treasury Regulation &#167;1.409A-1(b)(9).</font></div><div style="margin-top:12.6pt;padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:17.62pt">Continued Healthcare</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. If you timely elect continued coverage under COBRA, the Company will directly pay your COBRA premiums to continue your group health coverage (including coverage for your eligible dependents, if applicable) (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">COBRA Premiums</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) for a period of twelve</font></div><div style="padding-left:5pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:12.60pt">(12) months following the Separation Date (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:12.60pt">COBRA Premium Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:12.60pt">&#8221;), provided, however, that</font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:5.85pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">the Company's payment obligation of such COBRA Premium benefits will immediately cease if during the COBRA Premium Period you become eligible for group health insurance coverage through a new employer or you cease to be eligible for COBRA continuation coverage for any reason, including plan termination. In the event you become covered under another employer's group health plan or otherwise cease to be eligible for COBRA during the COBRA Premium Period, you must immediately notify the Company of such event. Notwithstanding the foregoing, if the Company determines, in its sole discretion, that it cannot pay the COBRA Premiums without potentially incurring financial costs or penalties under applicable law (including, without limitation, Section 2716 of the Public Health Service Act), regardless of whether you or your dependents elect or are eligible for COBRA coverage, the Company instead shall pay to you, on the first day of each calendar month following the Separation Date, a fully taxable cash payment equal to the applicable COBRA Premiums for that month (including the amount of COBRA Premiums for your eligible dependents) (such amount, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Special Cash Payment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), for the remainder of the COBRA Premium Period. You may, but are not obligated to, use such Special Cash Payments toward the cost of COBRA premiums.</font></div><div><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.85pt">2024 Pro-Rata Bonus Payment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Company will also pay you an amount equal to a pro-rata portion of your at-target bonus for the 2024 calendar year (calculated as seventy-five percent (75%) of your 2024 at-target bonus) (totaling $173,812.47) (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">2024 Pro-Rata Bonus</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). The 2024 Pro-Rata Bonus will be paid to you in a lump sum, subject to required payroll deductions and withholdings, on the Company&#8217;s first administratively practicable payroll date following the Effective Date (but in any event no later than 60 days following the Separation Date).</font></div><div style="margin-top:0.15pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.8pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">Consulting Relationship</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. If you satisfy the Conditions in Section 2 above, the Company agrees to retain you, and you agree to provide consulting services for the Company, under the following terms and conditions (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Consulting Relationship</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.23pt">Consulting Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Consulting Relationship will be deemed to have begun on the Separation Date (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Consulting Start Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) and will terminate on February 28, 2025, unless terminated earlier pursuant to Section 5(i) below (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Consulting Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-top:0.15pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.65pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:17.62pt">Consulting Services</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You agree to provide transitional consulting services to the Company Group in any area of your expertise, including but not limited to, completing critical projects and transitioning your duties and responsibilities as requested by Company&#8217;s Chief Executive Officer (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">CEO</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) or his designee (together, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Consulting Services</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). For the avoidance of doubt, you and the Company agree that the anticipated level of Consulting Services will not exceed 20% of the average level of services rendered by you to the Company Group over the preceding 36-month period and you shall have a &#8220;separation from service&#8221; for purposes of Section 409A of the Code, as of the Separation Date.  </font></div><div style="margin-top:0.1pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.85pt">Consulting Fees</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. During the Consulting Period, you will receive as consulting fees &#91;*&#93; per hour for services rendered as requested by the Company (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Consulting Fees</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). You will submit detailed invoices of your Consulting Services on a monthly basis, and the Company will provide payment of any owed Consulting Fees within thirty (30) days after receipt of such invoices.</font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">2</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="margin-top:0.1pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:17.62pt">Equity Treatment</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Your outstanding options to purchase Company common stock, restricted stock units and&#47;or performance stock units (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Equity Awards</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) that are scheduled to vest between the Separation Date and the expiration of the Consulting Period will remain outstanding and continue to vest in accordance with the normal vesting schedule applicable to the Equity Awards based on your continued Consulting Services, with any shares subject to a restricted stock unit or performance stock unit award that vests during the Consulting Period to be settled no later March 15, 2025 or such later date as required to comply with Section 409A of the Code, as set forth in the underlying Equity Award agreement. For the avoidance of doubt, the post-termination exercise period applicable to any outstanding and vested stock options held by you shall begin upon the expiration of the Consulting Period, subject to earlier termination upon the expiration of the option&#8217;s original ten-year term. Any Equity Awards that do not vest during the Consulting Period shall terminate for no consideration as of the expiration of the Consulting Period.</font></div><div style="margin-top:0.1pt"><font><br></font></div><div style="padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(e)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.85pt">Limitations on Authority</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You will have no responsibilities or authority as a consultant to the Company other than as provided above. You will have no authority to bind the Company Group to any contractual obligations, whether written, oral or implied. Unless as permitted as part of your Consulting Services, you agree not to represent or purport to represent the Company Group in any manner whatsoever to any third party (including but not limited to investors, business partners, or vendors).</font></div><div style="margin-top:0.2pt"><font><br></font></div><div style="padding-left:5pt;padding-right:11.35pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(f)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:20.07pt">Independent Contractor Relationship</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Your relationship with the Company will be that of an independent contractor, and nothing in this Agreement is intended to, or should be construed to, create a partnership, agency, joint venture or employment relationship between you and the Company or any member of the Company Group. Other than your eligibility for COBRA, you will not be entitled to any of the benefits that the Company Group may make available to its employees, including, but not limited to, group health or life insurance, profit sharing or retirement benefits. Because you are an independent contractor, the Company will not withhold or make payments for social security, make unemployment insurance or disability insurance contributions, or obtain workers&#8217; compensation insurance on your behalf. You are solely responsible for, and will file, on a timely basis, all tax returns and payments required to be filed with, or made to, any federal, state or local tax authority with respect to the performance of the Consulting Services and receipt of Consulting Fees under this Agreement, and will indemnify and hold harmless the Company Group with respect to the payment of any and all such taxes. No part of the Consulting Fees will be subject to withholding by the Company for the payment of any social security, federal, state or any other employee payroll taxes. The Company will report amounts paid to you as Consulting Fees by filing Form 1099-MISC with the Internal Revenue Service as required by law.</font></div><div style="margin-top:0.15pt"><font><br></font></div><div style="padding-left:5pt;padding-right:11.4pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(g)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.23pt">Confidential Information and Inventions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. In addition to your Continuing Obligations owed to the Company Group (as detailed in Section 6 below), and except as permitted by the &#8220;Protected Rights&#8221; in Section 11 below, you agree that, during the Consulting Period and thereafter, you will not use or disclose, other than in furtherance of the Consulting Services, any confidential or proprietary information or materials of the Company Group, including any confidential or proprietary information that you obtain or develop in the course of performing the Consulting Services. Any and all work product you create in the course of performing the Consulting Services will be the sole and exclusive property of the Company. You hereby assign to the Company all right, title, and interest in all inventions, techniques, processes, materials, and other intellectual property developed in the course of performing the Consulting Services.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">3</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="margin-top:0.05pt;padding-left:5pt;padding-right:11.55pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(h)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:17.62pt">Other Work Activities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Throughout the Consulting Period, you retain the right to engage in employment, consulting, or other work relationships in addition to your Consulting Services for the Company Group, so long as such activities do not present a conflict of interest with the Company Group&#8217;s business, and&#47;or your obligations owed to the Company Group under this Agreement and&#47;or the Continuing Obligations. In the event that it is unclear in any respect to you whether a particular activity would breach this commitment, you agree to contact the CEO to seek clarification.</font></div><div style="margin-top:0.05pt;padding-left:76.95pt;padding-right:11.55pt;text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(i)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:20.68pt">Early Termination of Consulting Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. </font></div><div style="margin-top:3.95pt;padding-left:76.95pt;padding-right:11.3pt;text-align:justify"><font><br></font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:107.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(i)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">You may terminate the Consulting Relationship for any reason upon five (5) days&#8217; prior written notice to the Company.</font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:107.5pt"><font><br></font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:107.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(ii)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">The Company may terminate the Consulting Relationship immediately, and without prior notice, for Cause, which includes (A) the willful and continued failure to substantially perform your obligations owed to the Company Group under this Agreement and&#47;or the Continuing Obligations (other than as a result of physical or mental disability) after a written demand for substantial performance is delivered to you by the Company, which demand specifically identifies the manner in which the Company believes that you have not substantially performed your duties and that has not been cured within fifteen (15) days following receipt by you of the written demand&#59; (B) commission of a felony (other than a traffic-related offense) that in the written determination of the Company is likely to cause or has caused material injury to the Company Group&#8217;s business&#59; (C) dishonesty with respect to a significant matter relating to the Company Group&#8217;s business&#59; or (D) material breach of any agreement by and between you and the Company Group (including, but not limited to, this Agreement and the Continuing Obligations), which material breach has not been cured within fifteen (15) days following receipt by you of written notice from the Company identifying such material breach. </font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:107.5pt"><font><br></font></div><div style="margin-top:3.95pt;padding-left:5pt;padding-right:11.3pt;text-align:justify;text-indent:107.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(iii)&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">For the avoidance of doubt, upon termination of the Consulting Relationship for any reason, you will no longer be eligible for, or receive, any Consulting Fees and your unvested Equity Awards shall thereupon terminate and the post-termination exercise period of your options will commence as of the date of such termination.</font></div><div style="margin-top:0.15pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.65pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">No Other Compensation or Benefits</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You agree and acknowledge that, except as expressly provided in this Agreement, you have not earned and will not receive from the Company Group any additional compensation (including base salary, severance, bonus, incentive compensation, commissions, or equity) or benefits prior to, on, or after the Separation Date, other than any vested benefits to which you are entitled under broad-based employee benefit plans of the Company Group in which you participate.</font></div><div style="margin-top:0.15pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.65pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">Return of Company Property</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Except as otherwise noted in this Section 5, on or within five (5) calendar days following the Separation Date, or earlier if requested by the Company, you agree to return to the Company all Company Group documents (and all copies thereof) and all Company Group property and equipment that you have in your possession or control, including but not limited to any materials of any kind that contain or embody any proprietary or confidential information of the Company Group in whatever form (including information in electronic form and all reproductions thereof in whole or in part). You further agree that you will not copy, delete, or alter in any way any Company Group information or material contained upon any Company issued computer or Company equipment. In addition, if you have used any personally owned computer, server, e-mail system or cloud system (</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">e.g.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, </font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">4</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="padding-left:5pt;padding-right:5.65pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Box, Dropbox, GoogleDrive), memory stick, flash memory card, or portable electronic device (</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:400;line-height:120%">e.g.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">, iPhone, iPad, Android) (collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Personal Systems</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) to receive, store, prepare or transmit any Company Group confidential or proprietary data, materials or information, then on or within five (5) calendar days following the Separation Date, or earlier if requested by the Company, you must provide the Company with a computer-useable forensic copy of all such information and then permanently delete and expunge all such Company Group confidential or proprietary information from such Personal Systems without retaining any copy or reproduction in any form. Notwithstanding the foregoing, you will be permitted to retain possession of your Company-issued laptop for the duration of the Consulting Period. You agree to use the laptop solely for work-related purposes. Upon termination of the Consulting Period, or earlier if requested by the Company, you will return the laptop and any remaining Company Group documents in your possession or control to the Company.</font></div><div style="margin-top:12.15pt;padding-left:5pt;padding-right:5.65pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">6.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">Continuing Obligations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You acknowledge and reaffirm your continuing obligations owed to the Company Group, including without limitation, pursuant to&#58; (a) your executed December 30, 2022 Proprietary Information, Inventions and Employment Agreement entered into with the Company (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">PIIEA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)&#59; (b) those sections of the Severance Agreement that survive your employment termination, including without limitation, Section 12 (&#8220;Confidentiality&#59; Non-Solicitation&#8221;)&#59; and (c) any other similar agreement entered into by you and which benefits or may be enforced by the Company or any other member of the Company Group (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Continuing Obligations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), each of which agreements and obligations remain in full force and effect in accordance with their terms following the Separation Date. Additionally, you agree to timely sign and deliver to the Company the &#8220;Termination Certification&#8221; attached to the PIIEA as Exhibit C.</font></div><div style="margin-top:0.55pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:5pt;padding-right:5.65pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">7.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">No Disparagement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. Except as permitted by the &#8220;Protected Rights&#8221; in Section 11 below, you agree not to disparage any member of the Company Group and each of their respective officers, directors, managers, members, employees, shareholders, investors and agents, in any manner likely to be harmful to them or their business, business reputation or personal reputation. Nothing in this Section, this Agreement, or any other agreement entered into with the Company Group will be interpreted or construed to prevent you from giving truthful information to any law enforcement officer, court, administrative proceeding or as part of an investigation by any government agency, or is intended to prohibit or restrain you in any manner from making disclosures that are protected under federal law or regulation or under other applicable law or regulation (including disclosures that are protected under the whistleblower provisions of any federal or state law).</font></div><div style="margin-top:4pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.75pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">8.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">No Admissions</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The promises and payments in consideration of this Agreement are not and shall not be construed to be an admission of any liability or obligation by either party to the other party, and neither party makes any such admission.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.2pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">9.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.8pt">Cooperation</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. From and after the date of this Agreement, you agree to cooperate fully with the Company Group, or any member thereof, in connection with its or their actual or contemplated defense, prosecution, or investigation of any claims or demands by or against third parties, or in connection with other matters arising from events, acts, or failures to act that occurred during the period of your employment by the Company Group&#59; provided, that such cooperation will not unreasonably burden you or unreasonably interfere with your subsequent employment or other business or personal affairs. Such cooperation includes making yourself available to the Company Group upon reasonable notice, without subpoena, to provide complete, truthful and accurate information in witness interviews, depositions, and trial testimony. The Company will reimburse you for reasonable and pre-approved out-of-pocket expenses you incur in connection with any such cooperation, excluding forgone wages, salary, or other compensation, and will accommodate your scheduling needs.</font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">5</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">10.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:22.25pt">Release of Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:18.23pt">General Release</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. In exchange for the consideration provided to you under the Agreement to which you would not otherwise be entitled, including but not limited to the Severance Benefits and the Consulting Relationship, you (for yourself and for any person who may make a claim by or through you (including without limitation, any current or former spouse(s), dependents, heirs, assignees, executors, attorneys, or agents)) hereby generally and completely release the Company and its current and former predecessors, successors, direct and indirect parents, direct and indirect subsidiaries, affiliates, investors, and related entities (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Entities</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) and each of the Entities&#8217; respective current and former directors, officers, employees, shareholders, partners, members, agents, attorneys, insurers, assigns, and employee benefit plans of and from any and all claims, liabilities, and obligations, both known and unknown, that arise out of or are in any way related to events, acts, conduct, or omissions occurring prior to or on the date you sign this Agreement (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Released Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(b)&#160;&#160;&#160;&#160;Scope of Release</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Released Claims include, but are not limited to&#58; (i) all claims arising out of or in any way related to your employment with or services for the Company or any other member of the Company Group, or the termination of that employment or those services&#59; (ii) all claims related to your compensation or benefits from the Company or any other member of the Company Group, including salary, bonuses, incentive compensation, commissions, paid time off, severance benefits, notice rights, retention benefits, fringe benefits, stock, stock options, restricted stock, units, or any other ownership interests in the Company or any other member of the Company Group or their predecessors&#59; (iii) all claims for breach of contract (oral or written), wrongful termination, and breach of the implied covenant of good faith and fair dealing&#59; (iv) all tort claims, including claims for fraud, inducement, misrepresentation, defamation, emotional distress, and discharge in violation of public policy&#59; and (v) all constitutional, federal, state, and local statutory and common law claims, in each case, as amended, including, but not limited to, claims for discrimination, harassment, retaliation, interference, attorneys&#8217; fees, and&#47;or other claims arising under the federal Civil Rights Act of 1964 and all similar state and local laws, the federal Americans with Disabilities Act of 1990 and all similar state and local laws, the federal Age Discrimination in Employment Act, as amended by the Older Workers Benefit Protection Act (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ADEA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;) and all similar state and local laws, the federal Family and Medical Leave Act and all similar state and local laws (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">FMLA</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), the federal Equal Pay Act and all similar state and local laws, the federal Employee Retirement Income Security Act of 1974, the Federal Fair Credit Reporting Act and all similar state and local laws, the California Fair Employment and Housing Act, the California Labor Code, and any and all claims arising from or related to any other federal, state or local fair employment practices act, statute, code, regulation, and&#47;or ordinance. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">You acknowledge that you have been advised, as required by California Government Code Section 12964.5(b)(4), that you have the right to consult an attorney regarding this Agreement and that you were given a reasonable time period of not less than five (5) business days in which to do so</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.6pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">&#160;&#160;&#160;&#160;(c)&#160;&#160;&#160;&#160;Excluded Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. The Released Claims in this Agreement do not include (i) any rights to indemnification you may have pursuant to the terms and conditions of the Company Group&#8217;s governing corporate documents, pursuant to any written indemnification agreement with the Company Group to which you are a party, under applicable law, or pursuant to the terms and conditions of any directors and officers&#8217; liability insurance policy of any member of the Company Group&#59; (ii) your rights to enforce the terms of this Agreement, and (iii) any rights that are not waivable as a matter of law, including without limitation, any rights you may have to seek unemployment or workers&#8217; compensation benefits.</font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">6</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="margin-top:12.6pt;padding-left:5pt;padding-right:5.55pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(d)&#160;&#160;&#160;&#160;ADEA Waiver</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You acknowledge that you are knowingly and voluntarily waiving and releasing any rights you may have under the ADEA (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">ADEA Waiver</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;), and that the consideration given for this ADEA Waiver is in addition to anything of value to which you are already entitled. You further acknowledge that you have been advised, as required by the ADEA, that&#58; (i) your ADEA Waiver does not apply to any rights or claims that may arise after the date that you sign this Agreement&#59; (ii) you should consult with an attorney prior to signing this Agreement&#59; (iii) you have twenty- one (21) calendar days to consider this Agreement (although you may choose voluntarily to sign it earlier)&#59; (iv) you have seven (7) calendar days following the date you sign this Agreement to revoke your acceptance of the Agreement (by providing written notice of your revocation to Karen Frechou-Armijo, the Company&#8217;s SVP, Head of Human Resources)&#59; and (v) this Agreement will not be effective until the date upon which the revocation period has expired unexercised, which will be the eighth calendar day after the date that you sign this Agreement, provided that you do not revoke your acceptance (the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Effective Date</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;)</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="padding-left:5pt;padding-right:5.55pt;text-align:justify;text-indent:71.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">(e)&#160;&#160;&#160;&#160;Waiver of Unknown Claims</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. In giving the releases set forth in this Agreement, which include claims that may be unknown to you at present, you acknowledge that you have read and understand Section 1542 of the California Civil Code which reads as follows&#58; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">&#8220;A general release does not extend to claims that the creditor or releasing party does not know or suspect to exist in his or her favor at the time of executing the release and that, if known by him or her, would have materially affected his or her settlement with the debtor or released party.&#8221; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">You hereby expressly waive and relinquish all rights and benefits under that section and any law or legal principle of similar effect in any jurisdiction with respect to your release of claims herein, including but not limited to the release of unknown and unsuspected claims.</font></div><div><font><br></font></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">11.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:17.3pt">Protected Rights</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You understand that nothing in this Agreement prevents you from filing a charge or complaint with the Equal Employment Opportunity Commission, the National Labor Relations Board, the Occupational Safety and Health Administration, the Securities and Exchange Commission or any other federal, state or local governmental agency or commission (collectively, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Government Agencies</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#8221;). This Agreement does not limit your ability to communicate with any Government Agencies or otherwise participate in any investigation or proceeding that may be conducted by any Government Agencies, including providing documents or other information, without notice to the Company. While this Agreement does not limit your right to receive an award for information provided to the Securities and Exchange Commission or to receive a monetary award from a government- administered whistleblower award program, you understand and agree that, to maximum extent permitted by law, you are otherwise waiving any and all rights you may have to individual relief based on any claims that you have released and any rights you have waived by signing this Agreement. Nothing in this Agreement prevents you from discussing or disclosing employee wages, benefits or terms and conditions of employment, or information about unfair or unlawful acts or employment practices in the workplace, such as harassment or discrimination or any other conduct that you have reason to believe is unlawful. Additionally, you further acknowledge that the Company has advised you that you will not be held civilly or criminally liable under any federal or state trade secret law for the disclosure of a trade secret that&#58; (a) is made (i) in confidence to a federal, state, or local government official, either directly or indirectly, or to an attorney, and (ii) solely for the purpose of reporting or investigating a suspected violation of law&#59; or (b) is made in a complaint or other document that is filed under seal in a lawsuit or other proceeding&#59; or (c) is made to an attorney or is used in a court proceeding in connection with a lawsuit alleging retaliation for reporting a suspected violation of law, provided that the trade secret is filed under seal and not disclosed except pursuant to court order.</font></div><div style="margin-top:0.05pt"><font><br></font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">7</font></div></div></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div><font><br></font></div></div><div style="padding-left:5pt;padding-right:5.7pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">12.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%;padding-left:17.3pt">Representations</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. You hereby represent that, as of the date you execute this Agreement&#58; you have been paid all compensation owed and payable through the date of this Agreement and for all time worked&#59; you have received all the leave and leave benefits and protections for which you are eligible pursuant to FMLA or any applicable federal or state law or Company policy through the date of this Agreement&#59; and you have not suffered any on-the-job injury or illness for which you have not already filed a workers&#8217; compensation claim. You further acknowledge and represent that&#58; (a) you are not relying upon any statements, understandings, representations, expectations, or agreements other than those expressly set forth in this Agreement&#59; (b) you have made your own investigation of the facts and you are relying solely upon your own knowledge&#59; (c) you are knowingly waiving any claim that this Agreement was induced by any misrepresentation or nondisclosure&#59; (d) you have read and understand the terms and effect of this Agreement&#59; and (e) you are knowingly and voluntarily agreeing to all of the terms set forth in this Agreement and to be bound by this Agreement.</font></div><div><font><br></font></div><div style="margin-top:0.05pt;padding-left:5pt;padding-right:6.1pt;text-align:justify;text-indent:35.95pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:12.60pt">13.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:12.60pt;padding-left:17.3pt">Section 409A. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:12.60pt">The parties intend that this Agreement and the payments made hereunder will be exempt from, or if not so exempt, comply with, the requirements of Section 409A of the Code, and shall be interpreted and construed consistently with such intent. Without limiting the foregoing, the Separation Benefits payable to you pursuant to Section 2 are intended to be exempt from Section 409A of the Code to the maximum extent possible, as short-term deferrals pursuant to Treasury Regulation &#167;1.409A-1(b)(4) or payments made pursuant to a separation pay plan pursuant to Treasury Regulation &#167;1.409A-1(b)(9). Each amount to be paid or benefit to be provided under this Agreement shall be construed as a separate and distinct payment for purposes of Section 409A of the Code.</font></div><div style="padding-left:5pt;padding-right:6.1pt;text-align:justify"><font><br></font></div><div style="padding-left:5pt;padding-right:6.1pt;text-align:justify;text-indent:31pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">14.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">General</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">. This Agreement, along with the Continuing Obligations detailed in Section 6 above (which are separate agreements and obligations that shall remain in full force and effect in accordance with their terms following the Separation Date), constitutes the complete, final and exclusive embodiment of the entire agreement between you and the Company with regard to the subject matter hereof. It is entered into without reliance on any promise or representation, written or oral, other than those expressly contained herein, and it supersedes and terminates any other agreements, promises, warranties or representations by and between you, the Company and all other members of the Company Group concerning its subject matter. This Agreement may not be modified or amended except in a writing signed by both you and the Company&#8217;s Board of Directors. This Agreement is governed by the laws of the State of California, without reference to conflicts of law principles, and will bind the heirs, personal representatives, successors and assigns of both you and the Company, and inure to the benefit of both you and the Company, their heirs, successors and assigns. If any provision of this Agreement is determined to be invalid or unenforceable, in whole or in part, this determination shall not affect any other provision of this Agreement and the provision in question shall be modified so as to be rendered enforceable in a manner consistent with the intent of the parties insofar as possible under applicable law. Any ambiguity in this Agreement shall not be construed against either party as the drafter. Any waiver of a breach of this Agreement, or rights hereunder, shall be in writing and shall not be deemed to be a waiver of any successive breach or rights hereunder. This Agreement may be executed in two or more counterparts, each of which will be deemed an original, but all of which together will constitute one and the same instrument. Counterparts may be delivered via facsimile, electronic mail (including pdf or any electronic signature complying with the U.S. federal ESIGN Act of 2000, Uniform Electronic Transactions Act or other applicable law) or other transmission method and any counterpart so delivered will be deemed to have been duly and validly delivered and be valid and effective for all purposes.</font></div><div style="margin-top:12.6pt"><font><br></font></div><div style="padding-left:0.45pt;padding-right:0.45pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#91;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-style:italic;font-weight:700;line-height:120%;text-decoration:underline">Signature Page to Follow</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#93;</font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">8</font></div></div></div><div id="i3561de80b2e541638e6dcd90483bc0fc_4"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-top:3.9pt;padding-left:5pt;padding-right:5.7pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">If this Agreement is acceptable to you, please sign below on or within twenty-one (21) calendar days from the date of this Agreement and then promptly return the fully signed original to me. The Company&#8217;s offer contained herein will automatically expire if we do not receive the fully signed Agreement from you within this timeframe.</font></div><div style="margin-top:0.5pt"><font><br></font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">9</font></div></div></div><div id="i3561de80b2e541638e6dcd90483bc0fc_7"></div><hr style="page-break-after:always"><div style="min-height:79.92pt;width:100%"><div><font><br></font></div></div><div style="width:100.000%"><div style="display:inline-block;vertical-align:top;width:44.906%"><div style="margin-top:4.6pt;padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">We wish you the best in your future endeavors.</font></div><div><font><br></font></div></div><div style="display:inline-block;max-width:1.240%;min-width:0.240%;vertical-align:top"></div><div style="display:inline-block;vertical-align:top;width:53.854%"><div><font><br></font></div><div style="margin-top:3.65pt"><font><br></font></div><div style="padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Sincerely,</font></div><div style="margin-top:0.15pt"><font><br></font></div><div style="padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Codexis, Inc.</font></div><div><font><br></font></div><div style="margin-top:0.6pt"><font><br></font></div><div style="padding-left:5pt;padding-right:13.7pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">By&#58;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">&#47;s&#47; Stephen Dilly&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> Stephen Dilly, MBBS, Ph.D.</font></div><div style="margin-top:0.05pt;padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Chairman, President and Chief Executive Officer</font></div></div></div><div><font><br></font></div><div><font><br></font></div><div style="margin-top:10.2pt"><font><br></font></div><div style="padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Agreed and Acknowledged&#58;</font></div><div><font><br></font></div><div><font><br></font></div><div style="padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">&#47;s&#47; Sri Ryali                                                       </font></div><div style="padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Sri Ryali</font></div><div style="margin-top:0.1pt"><font><br></font></div><div style="margin-top:0.05pt;padding-left:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">Date&#58; </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">10&#47;16&#47;2024                                            </font></div><div style="height:77.04pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:80%">10</font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.16C
<SEQUENCE>4
<FILENAME>codexis-ex1016cinnovatus2n.htm
<DESCRIPTION>EX-10.16C
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="ic668ae73826345bba34349876c1aa6be_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SECOND AMENDMENT TO LOAN AND SECURITY AGREEMENT</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SECOND AMENDMENT TO LOAN AND SECURITY AGREEMENT</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> (this</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;) is entered into as of December 20, 2024, by and among INNOVATUS LIFE SCIENCES LENDING FUND I, LP, a Delaware limited partnership (together with its successors and assigns, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Innovatus</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), as collateral agent (in such capacity, together with its successors and assigns in such capacity, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Collateral Agent</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), the Lenders listed on Schedule 1.1 thereof or otherwise a party thereto from time to time (each a &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Lender</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; and collectively, &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Lenders</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;), and CODEXIS, INC., a Delaware corporation (&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Borrower</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;).</font></div><div style="text-align:justify"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Recitals</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">A.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Collateral Agent, Lenders, and Borrower have entered into that certain Loan and Security Agreement dated as of February 13, 2024, as amended by that certain First Amendment to Loan and Security Agreement, dated as of May 1, 2024, and effective as of February 13, 2024 (as the same may from time to time be amended, modified, supplemented or restated, the &#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Loan Agreement</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;).  </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">B.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Lenders have extended credit to Borrower for the purposes permitted in the Loan Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">C.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Borrower and Lenders desire to extend the Specified Period in accordance with the terms set forth herein.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">D.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;Collateral Agent and Lenders have agreed to amend the Loan Agreement, but only to the extent, in accordance with the terms, subject to the conditions and in reliance upon the representations and warranties set forth below.</font></div><div style="margin-bottom:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Agreement</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">&#160;&#160;&#160;&#160;Now, Therefore,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in consideration of the foregoing recitals and other good and valuable consideration, the receipt and adequacy of which is hereby acknowledged, and intending to be legally bound, the parties hereto agree as follows&#58;</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Definitions.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">  Capitalized terms used but not defined in this Agreement shall have the meanings given to them in the Loan Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Amendments.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Loan Agreement is hereby amended as set forth below&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Section 13 (Definitions)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">.  The definition of &#8220;Specified Period&#8221; in Section 13 of the Loan Agreement is hereby amended and restated as set forth below&#58;</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Specified Period</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221; means the period commencing on the Effective Date and ending on the earlier of (i) the date of dissolution of Codexis India and (ii) September 30, 2025.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:28.5pt"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Limitation of Agreement.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">This Agreement is effective for the purposes set forth herein and shall be limited precisely as written and shall not be deemed to (a)&#160;be a consent to any amendment, waiver or modification of any other term or condition of any Loan Document, or (b)&#160;otherwise prejudice any right or remedy which Collateral Agent and Lenders may now have or may have in the future under or in connection with any Loan Document.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">This Agreement shall be construed in connection with and as part of the Loan Documents, and all terms, conditions, representations, warranties, covenants and agreements set forth in the Loan Documents are hereby ratified and confirmed and shall remain in full force and effect.</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:46.701%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:10.00pt">312202779 v2</font></div><div><font><br></font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Representations and Warranties.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Borrower represents and warrants to Collateral Agent and Lenders as follows&#58;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">(a)&#160;the representations and warranties contained in the Loan Documents are true, accurate and complete in all material respects (except</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:100%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">those representations and warranties that are qualified by materiality which shall be true and correct in all respects) as of the date hereof (except to the extent such representations and warranties relate to an earlier date, in which case they are true and correct as of such date), and (b)&#160;no Event of Default has occurred and is continuing immediately before and after giving effect to this Agreement&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">Borrower has the power and authority to execute and deliver this Agreement and to perform its obligations under the Loan Agreement&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.3</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">The organizational documents of Borrower delivered to Collateral Agent and Lenders on the Effective Date or subsequent thereto remain true, accurate and complete and have not been amended, supplemented or restated and are and continue to be in full force and effect&#59;</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.4</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">The execution and delivery by Borrower of this Agreement and the performance by Borrower of its obligations under the Loan Agreement have been duly authorized by all necessary action on the part of Borrower&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.5</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">The execution and delivery by Borrower of this Agreement and the performance by Borrower of its obligations under the Loan Agreement do not and will not contravene (a)&#160;any law or regulation binding on or affecting Borrower, (b)&#160;any contractual restriction with a Person binding on Borrower, (c)&#160;any order, judgment or decree of any court or other governmental or public body or authority, or subdivision thereof, binding on Borrower, or (d)&#160;the organizational documents of Borrower&#59; </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.6</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">The execution and delivery by Borrower of this Agreement and the performance by Borrower of its obligations under the Loan Agreement do not require any order, consent, approval, license, authorization or validation of, or filing, recording or registration with, or exemption by any governmental or public body or authority, or subdivision thereof, binding on either Borrower, except as already has been obtained or made&#59; and</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.7</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">This Agreement has been duly executed and delivered by Borrower and is the binding obligation of Borrower, enforceable against Borrower in accordance with its terms, except as such enforceability may be limited by bankruptcy, insolvency, reorganization, liquidation, moratorium or other similar laws of general application and equitable principles relating to or affecting creditors&#8217; rights.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Prior Agreement.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The Loan Documents are hereby ratified and reaffirmed and shall remain in full force and effect.  This Agreement is not a novation and the terms and conditions of this Agreement shall be in addition to and supplemental to all terms and conditions set forth in the Loan Documents.  In the event of any conflict or inconsistency between this Agreement and the terms of such documents, the terms of this Agreement shall be controlling, but such document shall not otherwise be affected or the rights therein impaired.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Integration.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This Agreement and the Loan Documents represent the entire agreement about this subject matter and supersede prior negotiations or agreements.  All prior agreements, understandings, representations, warranties, and negotiations between the parties about the subject matter of this Agreement and the Loan Documents merge into this Agreement and the Loan Documents.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Counterparts.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This Agreement may be executed in any number of counterparts and all such counterparts taken together shall be deemed to constitute one and the same instrument.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Conditions to Effectiveness.  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This Agreement shall be deemed effective upon the due execution and delivery to Collateral Agent and Lenders, in form and substance reasonably satisfactory to Collateral Agent and each Lender, such documents, and completion of such other matters, as Collateral Agent and each Lender may reasonably deem necessary or appropriate (and requested in writing at least three Business Days prior to the date hereof), including, without limitation&#58;</font></div><div style="margin-bottom:12pt;padding-left:90pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:10.24pt">this Agreement duly executed by each party hereto&#59; and </font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:46.701%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:10.00pt">312202779 v2</font></div><div><font><br></font></div></td></tr></table></div></div></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:90pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:9.67pt">Borrower&#8217;s payment of all Lenders&#8217; Expenses incurred through the date of this Agreement to the extent due and payable.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:28.5pt">Miscellaneous.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.1</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">This Agreement shall constitute a Loan Document under the Loan Agreement&#59; and all obligations included in this Agreement (including, without limitation, all obligations for the payment of principal, interest, fees, and other amounts and expenses) shall constitute obligations under the Loan Agreement and secured by the Collateral.</font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9.2</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%;padding-left:23.5pt">Each provision of this Agreement is severable from every other provision in determining the enforceability of any provision.</font></div><div style="margin-bottom:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;padding-left:23.5pt">Governing Law.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">  This Agreement and the rights and obligations of the parties hereto shall be governed by and construed in accordance with the laws of the State of New York.</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#91;Signature pages follow.&#93;</font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:46.701%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:10.00pt">312202779 v2</font></div><div><font><br></font></div></td></tr></table></div></div></div><div id="ic668ae73826345bba34349876c1aa6be_4"></div><hr style="page-break-after:always"><div style="min-height:72pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">IN WITNESS WHEREOF</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, the parties hereto have caused this Agreement to be executed as of the date first written above.</font></div><div><font><br></font></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:45.053%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.592%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.055%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">BORROWER&#58;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">CODEXIS, INC.</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By &#47;s&#47; Georgia Erbez</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Name&#58; Georgia Erbez</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Title&#58; Chief Financial Officer</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:43.108%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:10.00pt">312202779 v2</font></div><div><font><br></font></div></td></tr></table></div></div></div><div id="ic668ae73826345bba34349876c1aa6be_7"></div><hr style="page-break-after:always"><div style="min-height:63.36pt;width:100%"><div><font><br></font></div><div><font><br></font></div></div><div style="text-align:justify;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">IN WITNESS WHEREOF</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, the parties hereto have caused this Agreement to be executed as of the date first written above.</font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.597%"><tr><td style="width:1.0%"></td><td style="width:45.053%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.592%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.055%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%">COLLATERAL AGENT AND LENDER&#58;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">INNOVATUS LIFE SCIENCES LENDING FUND I, LP</font></td></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By&#58; Innovatus Life Sciences GP, LP</font></div><div style="padding-right:-2.63pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Its&#58; General Partner</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt;text-indent:18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By&#58; &#47;s&#47; Andrew Dym</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt;text-indent:18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Name&#58; Andrew Dym</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-right:-2.63pt;text-indent:18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Title&#58; Authorized Signatory</font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:6pt"><font><br></font></div><div style="margin-bottom:12pt;text-align:center"><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font></div><div style="height:49.68pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:42.073%"><tr><td style="width:1.0%"></td><td style="width:98.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:400;line-height:10.00pt">312202779 v2</font></div><div><font><br></font></div></td></tr></table></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-19.1
<SEQUENCE>5
<FILENAME>codexis-ex191insidertradin.htm
<DESCRIPTION>EX-19.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i0eb35534ff7144e1bd3a0a2bffebe4bb_1"></div><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt"><font><br></font></div><div style="margin-bottom:12pt;padding-left:107.3pt;padding-right:107.3pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;padding-left:107.3pt;padding-right:107.3pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">INSIDER TRADING COMPLIANCE PROGRAM</font></div><div style="padding-left:107.27pt;padding-right:107.27pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">Approved by the Company&#8217;s Board of Directors</font></div><div style="padding-left:107.27pt;padding-right:107.27pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">on May 9, 2024</font></div><div style="padding-left:107.27pt;padding-right:107.27pt;text-align:center"><font><br></font></div><div style="margin-bottom:12pt;padding-left:42pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">This Insider Trading Compliance Program (the &#8220;Program&#8221;) consists of six sections&#58;</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:14.1pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Section I provides an overview&#59; Section II sets forth Codexis, Inc.&#8217;s policies prohibiting insider trading&#59; Section III explains insider trading&#59; Section IV consists of various procedures which have been put in place by Codexis, Inc. to prevent insider trading&#59; Section V sets forth policies regarding 10b5-1 trading plans&#59; and Section VI includes Certification of Compliance instructions.</font></div><div style="margin-bottom:12pt;padding-left:42pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">I.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:28.34pt;text-decoration:underline">SUMMARY</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:7.1pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Preventing insider trading is necessary to comply with securities laws and to preserve the reputation and integrity of Codexis, Inc. (the &#8220;Company&#8221;) as well as that of all individuals affiliated with it. &#8220;Insider trading&#8221; occurs when any individual purchases or sells a security while in possession of inside information relating to the security. As explained in Section III below, &#8220;inside information&#8221; is information which is considered to be both &#8220;material&#8221; and &#8220;non-public.&#8221; Insider trading is a crime and the penalties for violating the law include imprisonment, disgorgement of profits, civil fines of up to three times the profit gained or loss avoided, and criminal fines. Insider trading is also prohibited by this Program and could result in serious sanctions, including dismissal.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">This Program applies to all officers, directors, employees and consultants of the Company, and extends to all activities within and outside an individual&#8217;s duties at the Company. Individuals subject to this Program are responsible for ensuring that members of their households also comply with this Program. This Program also applies to any entities controlled by individuals subject to the Program, including any corporations, partnerships or trusts, and transactions by these entities should be treated for the purposes of this Program and applicable securities laws as if they were for the individual&#8217;s own account. The Company will not purchase, sell or transact in Company Securities in violation of applicable securities laws or stock exchange listing standards. Every officer, director, employee, and consultant and must review this Program. Questions regarding the Program should be directed to the Company&#8217;s Compliance Officer or the Company&#8217;s Chief Financial Officer.  </font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A good general rule of thumb&#58;  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">when in doubt, do not trade.</font></div><div style="margin-bottom:12pt;padding-left:42pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">II.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:23.68pt;text-decoration:underline">STATEMENT OF POLICIES PROHIBITING INSIDER TRADING</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">1</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:9.45pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">No officer, director, employee or consultant, or any member of the household of any such individual, shall purchase, sell, or gift any type of security while in possession of material, non-public information relating to the security, whether the issuer of such security is the Company or any other company.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">Additionally, neither the Company nor any of its officers, employees or directors, nor any member of the household of any such individual, shall purchase, sell, or gift any security of the Company during the period beginning two weeks before the end of any fiscal quarter of the Company and ending two full trading days after the public release of earnings data for such fiscal quarter, whether or not the Company or any of such individuals is in possession of material, non-public information (the &#8220;Black-Out Period&#8221;). </font></div><div style="margin-bottom:12pt;padding-left:42pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The Black-Out Period does not apply to&#58;</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:6.9pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:13.8pt">purchases of the Company&#8217;s securities from the Company or sales of the Company&#8217;s securities to the Company, including surrender of shares to the Company upon vesting or settlement of equity-based awards to cover withholding obligations with respect to such vesting or settlement that do not involve a market sale of the Company&#8217;s securities&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:14.5pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:13.8pt">exercises of stock options or other equity awards</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">or the surrender of shares to the Company in payment of the exercise price or in satisfaction of any tax withholding obligations in a manner permitted by the applicable equity award agreement, or vesting of equity-based awards, in each case, that do not involve a market sale of the Company&#8217;s securities, including the receipt of shares in settlement of any restricted stock unit agreement or stock appreciation rights agreement&#59; or</font></div><div style="margin-bottom:12pt;padding-left:77.75pt;padding-right:10.8pt;text-indent:-18pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:13.8pt">purchases, sales, or gifts of the Company&#8217;s securities made pursuant to a plan adopted that meets all requirements of the affirmative defense provided by Rule 10b5-1 (&#8220;Rule 10b5-1&#8221;) promulgated under the Securities Exchange Act of 1934, as amended (the &#8220;1934 Act&#8221;).</font></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:13.7pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Note&#58; The Black-Out Period </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">does</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> apply to market sales of stock acquired upon the exercise of a stock option or the vesting of equity-based awards, including any such sale as part of a broker-assisted cashless exercise of an option, or any other market sale for the purposes of generating the cash needed to pay the exercise price of the option or to cover tax obligations upon the exercise, vesting or settlement of the equity-based award.</font></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:13.7pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">In certain limited circumstances, the Company may permit trading pursuant to other pre-established trading arrangements. Any such trading arrangement must be expressly authorized in advance of adoption by the Compliance Officer.</font></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:13.7pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Exceptions to the Black-Out Period policy may be approved only by the Compliance Officer or, in the case of exceptions for directors or officers under Securities </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">2</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:13.7pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">and Exchange Commission (&#8220;SEC&#8221;) Rule 16a-1(f), the Board of Directors or Audit Committee of the Board of Directors.</font></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:13.7pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">From time to time, the Company, through the Board of Directors or the Compliance Officer, may recommend that officers, directors, and certain specified employees suspend trading in the Company&#8217;s securities because of developments that have not yet been disclosed to the public. Subject to the exceptions noted above, all those affected should not trade in the Company&#8217;s securities while the suspension is in effect, and should not disclose to others that the Company has suspended trading.  </font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:26.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">For the purposes of this Program, a &#8220;trading day&#8221; shall mean a day on which national stock exchanges are open for trading.</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:4.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">No officer, director, employee, or consultant, nor any member of the household of any such individual, shall directly or indirectly tip material, non-public information to anyone while in possession of such information. In addition, material, non-public information should not be communicated to anyone outside the Company under any circumstances (absent prior approval by the Compliance Officer or execution of an appropriate confidentiality agreement), or to anyone within the Company other than on a need-to-know basis.</font></div><div style="margin-bottom:12pt;padding-left:42pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">III.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:19.02pt;text-decoration:underline">EXPLANATION OF INSIDER TRADING</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:10.05pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">As noted above, &#8220;insider trading&#8221; refers to the purchase, sale, or gifts of a security while in possession of &#8220;material,&#8221; &#8220;non-public&#8221; information relating to the security. &#8220;Securities&#8221; include not only stocks, bonds, notes and debentures, but also options, warrants and similar instruments. &#8220;Purchase&#8221; and &#8220;sale&#8221; are defined broadly under the federal securities laws. &#8220;Purchase&#8221; includes not only the actual purchase of a security, but any contract to purchase or otherwise acquire a security. &#8220;Sale&#8221; includes not only the actual sale of a security, but any contract to sell or otherwise dispose of a security. These definitions extend to a broad range of transactions including conventional cash-for-stock transactions, conversions, the exercise of stock options and acquisitions and exercises of warrants or puts, calls or other options related to a security.  It is generally understood that insider trading includes the following&#58;</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Trading by insiders while in possession of material, non-public information&#59;</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:6.95pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Trading by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">individual</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">s other than insiders while in possession of material, non-public information where the information either was given in breach of an insider&#8217;s fiduciary duty to keep it confidential or was misappropriated&#59; or</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:17.6pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Communicating or tipping material, non-public information to others, including recommending the purchase, sale, or gifts of a security while in possession of such information.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">What Facts are Material&#63;</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">3</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:6.4pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The materiality of a fact depends upon the circumstances. A fact is considered &#8220;material&#8221; if there is a substantial likelihood that a reasonable investor would consider it important, as part of the total mix of available information, in making a decision to buy, sell or hold a security or where the fact is likely to have a significant effect on the market price of the security. Material information can be positive or negative and can relate to virtually any aspect of a company&#8217;s business or to any type of security, debt or equity.</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:6.4pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Examples of material information include (but are not limited to) facts concerning&#58; financial results&#59; dividends&#59; corporate earnings or earnings forecasts&#59; significant changes in corporate objectives&#59; possible mergers or acquisitions&#59; major litigation&#59; significant developments in borrowings or financings&#59; gain or loss of a substantial customer or supplier&#59; calls, redemptions or purchases of the Company&#8217;s securities by the Company&#59; and information concerning product developments, important business developments and major litigation developments. Moreover, material information does not have to be related to a company&#8217;s business. For example, the contents of a forthcoming newspaper column that is expected to affect the market price of a security can be material.</font></div><div style="margin-bottom:12pt;padding-left:41pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A good general rule of thumb&#58;  </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">when in doubt, do not trade.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">B.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25pt;text-decoration:underline">What is Non-public</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#63;</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:14.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Information is &#8220;non-public&#8221; if it is not available to the general public. In order for information to be considered public, it must be widely disseminated in a manner making it generally available to investors through such media as </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Dow Jones</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Reuters Economic Services</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">The Wall Street Journal</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Business Wire</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Associated Press</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">PR Newswire </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">or </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">United Press International</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, a Regulation FD compliant conference call or public disclosure documents filed with the SEC. The circulation of rumors, even if accurate and reported in the media, does not constitute effective public dissemination.</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:14.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">In addition, even after a public announcement, a reasonable period of time must lapse in order for the market to react to the information. Generally, one should allow two full trading days following publication as a reasonable waiting period before such information is deemed to be public.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">C.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25pt;text-decoration:underline">Who is an Insider</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#63;</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:12pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8220;Insiders&#8221; include officers, directors and employees of a company and anyone else (including consultants) who has material inside information about a company. Insiders have independent fiduciary duties to their company and its stockholders not to trade on material, non-public information relating to the company&#8217;s securities. All officers, directors, employees and consultants of the Company should consider themselves insiders with respect to material, non-public information about the Company&#8217;s business, activities and securities. Officers, directors, employees and consultants may not trade the Company&#8217;s securities while in possession of material, non-public information relating to the Company nor tip (or communicate except on a need-to-know basis) such information to others.</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">4</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:6.8pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Individuals subject to this Program are responsible for ensuring that any members of their households also comply with this Program. This Program also applies to any entities controlled by individuals subject to the Program, including any corporations, partnerships or trusts, and transactions by these entities should be treated for the purposes of this Program and applicable securities laws as if they were for the individual&#8217;s own account.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">D.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Trading by </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;text-decoration:underline">Individual</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">s Other than Insiders</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:4.9pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Insiders may be liable for communicating or tipping material, non-public information to a third party (&#8220;tippee&#8221;), and insider trading violations are not limited to trading or tipping by insiders. Individuals other than insiders also can be liable for insider trading, including tippees who trade on material, non-public information tipped to them or individuals who trade on material, non-public information which has been misappropriated.</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:10.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Tippees inherit an insider&#8217;s duties and are liable for trading on material, non-public information illegally tipped to them by an insider. Similarly, just as insiders are liable for the insider trading of their tippees, so are tippees who pass the information along to others who trade. In other words, a tippee&#8217;s liability for insider trading is no different from that of an insider. Tippees can obtain material, non-public information by receiving overt tips from others or through, among other things, conversations at social, business, or other gatherings.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">E.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25.67pt;text-decoration:underline">Penalties for Engaging in Insider Trading</font></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:10.8pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Penalties for trading on or tipping material, non-public information can extend significantly beyond any profits made or losses avoided, both for individuals engaging in such unlawful conduct and their employers. The SEC and Department of Justice have made the civil and criminal prosecution of insider trading violations a top priority. Enforcement remedies available to the government or private plaintiffs under the federal securities laws include&#58;</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">SEC administrative sanctions&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Securities industry self-regulatory organization sanctions&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Civil injunctions&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Damage awards to private plaintiffs&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Disgorgement of all profits&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:5.25pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Civil fines for the violator of up to three times the amount of profit gained or loss avoided&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:12.55pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Civil fines for the employer or other controlling person of a violator (i.e., where the violator is an employee or other controlled person)&#59;</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:17.5pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Criminal fines for individual violators&#59; and</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">5</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Jail sentences.</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:13.1pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">In addition, insider trading could result in serious sanctions by the Company, including dismissal. Insider trading violations are not limited to violations of the U.S. federal securities laws&#58; other federal and state civil or criminal laws, such as the laws prohibiting mail and wire fraud and the Racketeer Influenced and Corrupt Organizations Act (&#8220;RICO&#8221;), also may be violated upon the occurrence of insider trading.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">F.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:26.33pt;text-decoration:underline">Examples of Insider Trading</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:9.5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Examples of insider trading cases include actions brought against&#58; corporate officers, directors, and employees who traded a company&#8217;s securities after learning of significant confidential corporate developments&#59; friends, business associates, family members, and other tippees of such officers, directors, and employees who traded the securities after receiving such information&#59; government employees who learned of such information in the course of their employment&#59; and other persons who misappropriated, and took advantage of, confidential information from their employers.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:8.45pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The following are illustrations of insider trading violations. These illustrations are hypothetical and, consequently, not intended to reflect on the actual activities or business of the Company or any other entity.</font></div><div style="margin-bottom:12pt;padding-left:42pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Trading by Insider</font></div><div style="margin-bottom:12pt;padding-left:41.95pt;padding-right:11.8pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">An officer of X Corporation learns that earnings to be reported by X Corporation will increase dramatically. Prior to the public announcement of such earnings, the officer purchases X Corporation&#8217;s stock.  The officer, an insider, is liable for all profits as well as penalties of up to three times the amount of all profits. The officer also is subject to, among other things, criminal prosecution. Depending upon the circumstances, X Corporation and the individual to whom the officer reports also could be liable.</font></div><div style="margin-bottom:12pt;padding-left:42pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Trading by Tippee</font></div><div style="margin-bottom:12pt;padding-left:41.75pt;padding-right:7.2pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">An officer of X Corporation tells a friend or family member that X Corporation is about to publicly announce that it has concluded an agreement for a major acquisition. This tip causes the friend&#47;family member to purchase X Corporation&#8217;s stock in advance of the announcement. The officer is jointly liable with his friend for all of the friend&#8217;s&#47;family member&#8217;s profits and each is liable for all penalties of up to three times the amount of the profits. In addition, the officer and his friend&#47;family member are subject to, among other things, criminal prosecution, as described above.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">G.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%;padding-left:24.34pt"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Prohibition of Records Falsifications and False Statements</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:4.1pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Section 13(b)(2) of the 1934 Act requires companies subject to the 1934 Act to maintain proper internal books and records and to devise and maintain an adequate system of internal accounting controls.  The SEC has supplemented the statutory requirements by adopting rules that prohibit (1) any person from falsifying records or accounts subject to the </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">6</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:4.1pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">above requirements and (2) officers or directors from making any materially false, misleading or incomplete statement to any accountant in connection with any audit or filing with the SEC. These provisions reflect the SEC&#8217;s intent to discourage officers, directors and other persons with access to the Company&#8217;s books and records from taking action that might result in the communication of materially misleading financial information to the investing public.</font></div><div style="margin-bottom:12pt;padding-left:41pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">IV.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:19.68pt;text-decoration:underline">STATEMENT OF PROCEDURES PREVENTING INSIDER TRADING</font></div><div style="margin-bottom:12pt;padding-left:5.05pt;padding-right:5.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The following procedures have been established, and will be maintained and enforced, by the Company to prevent insider trading. Every officer, director, employee and consultant is required to follow these procedures.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Information Relating to the Company</font></div><div style="margin-bottom:12pt;padding-left:114pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:27pt;text-decoration:underline">Access to Information</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:4.45pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Access to material, non-public information about the Company, including the Company&#8217;s business, earnings or prospects, should be limited to officers, directors, employees and consultants of the Company on a need-to-know basis. In addition, such information should not be communicated to anyone outside the Company under any circumstances or to anyone within the Company on an other than need to know basis.</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:11.25pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">In communicating material, non-public information to officers, directors, employees and consultants of the Company, all officers, directors, employees and consultants must take care to emphasize the need for confidential treatment of such information and adherence to the Company&#8217;s policies with regard to confidential information.</font></div><div style="margin-bottom:12pt;padding-left:114pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:27pt;text-decoration:underline">Inquiries From Third Parties</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:7.1pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Media inquiries from third parties should be directed to </font><font style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">media&#64;codexis.com</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">. Investor inquiries from third parties should be directed to </font><font style="color:#0000ff;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">ir&#64;codexis.com</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">B.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25pt;text-decoration:underline">Limitations on Access to Company Information</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:26.1pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The following procedures are designed to maintain confidentiality with respect to the Company&#8217;s business operations and activities.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:9pt;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:21pt">All officers, directors, employees and consultants should take all steps and precautions necessary to restrict access to, and secure, material, non-public information by, among other things&#58;</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Maintaining the confidentiality of Company related transactions&#59;</font></div><div style="margin-bottom:12pt;padding-left:77.75pt;padding-right:31.7pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Conducting their business and social activities so as not to risk inadvertent disclosure of confidential information. Review of confidential documents in public places should be conducted so as to prevent access by unauthorized persons&#59;</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">7</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:32.2pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Entering into confidentiality agreements with outside parties prior to sharing material, non-public information with such parties&#59;</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:20.35pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Restricting access to documents and files (including computer files) containing material, non-public information to individuals on a need-to-know basis (including maintaining control over the distribution of documents and drafts of documents)&#59;</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:35.75pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Promptly removing and cleaning up all confidential documents and other materials from conference rooms following the conclusion of any meetings&#59;</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:10.85pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Disposing of all confidential documents and other papers, after there is no longer any business or other legally required need, through shredders when appropriate&#59;</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:18.9pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Restricting access to areas likely to contain confidential documents or material, non-public information&#59; and</font></div><div style="margin-bottom:12pt;padding-left:77pt;padding-right:15.6pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Avoiding the discussion of material, non-public information in places where the information could be overheard by others such as in elevators, restrooms, hallways, restaurants, airplanes or taxicabs.</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:21.85pt;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:22pt">Personnel involved with material, non-public information, to the extent feasible, should conduct their business and activities in areas separate from other Company activities.</font></div><div style="margin-bottom:12pt;padding-left:76.5pt;padding-right:44.45pt;text-indent:-35.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">C.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.5pt;text-decoration:underline">Pre-Clearance of Trades </font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">To provide assistance in preventing inadvertent violations of applicable securities laws and to avoid the appearance of impropriety in connection with the purchase and sale of Company securities, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;text-decoration:underline">all</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%"> transactions in Company securities (including without limitation, acquisitions and dispositions of Company Stock, the exercise of stock options and the sale of Company Stock issued upon exercise of stock options) by officers, directors and employees of the Company having the position of Vice President (or its equivalent) or higher within the Company, must be pre-cleared by the Compliance Officer or the Chief Financial Officer. </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Pre-clearance does not relieve anyone of his or her responsibility under SEC rules.</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A request for pre-clearance must be in writing (including by email) in a form approved by the Compliance Officer from time to time, delivered to the Compliance Officer (or, in the event the Compliance Officer or the Chief Financial Officer is not available, then the President and Chief Executive Officer (CEO) of the Company), should be made at least two business days in advance of the proposed transaction and should include the identity of the individual requesting pre-clearance, the type of proposed transaction (for example, an open market purchase, a privately negotiated sale, an option exercise, etc.), the proposed date of the transaction and the number of shares or other securities to be involved. In addition, the individual requesting pre-clearance must execute a certification that he or she has read and is </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">8</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">familiar with this Program and is not aware of material, non-public information about the Company. The Compliance Officer or Chief Financial Officer (or, in their absence, the President and CEO) shall have sole discretion to decide whether to clear any contemplated transaction. All trades that are pre-cleared must be effected within five business days of the date the Compliance Officer or Chief Financial Officer sends the pre-clearance approval to the requesting individual unless a specific exception has been granted by the Compliance Officer or the Chief Financial Officer (or, in their absence, the President&#47;CEO). A pre-cleared trade (or any portion of a pre-cleared trade) that has not been effected during the five business day period must be pre-cleared again prior to execution.  </font></div><div style="padding-left:10.95pt;padding-right:33pt;text-indent:43.05pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">All executive officers and directors must submit to the Compliance Officer a copy of any trade order or confirmation relating to the purchase, sale, or gift of Company Securities as soon as possible but no later than one (1) day of any such transaction.  This information is necessary to enable the Company to monitor trading by executive officers and directors and ensure that all such trades are properly reported.  </font></div><div style="padding-left:10.95pt;padding-right:33pt;text-indent:43.05pt"><font><br></font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Notwithstanding receipt of pre-clearance, if the individual requesting pre-clearance becomes aware of material non-public information or becomes subject to a Black-Out Period before the transaction is effected, the transaction may not be completed. </font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">None of the Company, the Compliance Officer, the Chief Financial Officer, the President and CEO or the Company&#8217;s other employees will have any liability for any delay in reviewing, or refusal of, a request for pre-clearance. Notwithstanding any pre-clearance of a transaction pursuant to these procedures, none of the Compliance Officer, the Chief Financial Officer, the President and CEO or the Company&#8217;s other employees assumes any liability for the legality or consequences of such transaction to the individual engaging in such transaction.</font></div><div style="margin-bottom:12pt;padding-left:5.05pt;padding-right:4.3pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">Additionally, none of the Company&#8217;s employees, directors or consultants, or any member of the household of any such individual, may trade in any securities of the Company during the Black-Out Period, subject to exceptions described in Section II above.</font></div><div style="margin-bottom:12pt;padding-left:77.05pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">D.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Additional Prohibited Transactions</font></div><div style="margin-bottom:12pt;text-indent:40.3pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The Company has determined that there is a heightened legal risk and&#47;or the appearance of improper or inappropriate conduct if the individuals subject to this Program engage in certain types of transactions. Therefore, such individuals and members of the household of any such individual, shall comply with the following policies with respect to certain transactions in the Company securities&#58;</font></div><div style="margin-bottom:12pt;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">1.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Short Sales</font></div><div style="margin-bottom:12pt;text-indent:40.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Short sales of the Company&#8217;s securities evidence an expectation on the part of the seller that the securities will decline in value, and therefore signal to the market that the seller has no confidence in the Company or its short-term prospects. In addition, short sales may </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">9</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">reduce the seller&#8217;s incentive to improve the Company&#8217;s performance. For these reasons, short sales of the Company&#8217;s securities are prohibited by this Program. In addition, as noted above, Section 16(c) of the 1934 Act absolutely prohibits Section 16 reporting persons from making short sales of the Company&#8217;s equity securities, </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-style:italic;font-weight:400;line-height:120%">i.e.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">, sales of shares that the insider does not own at the time of sale, or sales of shares against which the insider does not deliver the shares within 20 days after the sale.</font></div><div style="margin-bottom:12pt;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">2.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Publicly Traded Options</font></div><div style="margin-bottom:12pt;text-indent:40.3pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A transaction in options is, in effect, a bet on the short-term movement of the Company&#8217;s Stock and therefore creates the appearance that an officer, director, employee or consultant is trading based on inside information. Transactions in options also may focus an officer&#8217;s, director&#8217;s, employee&#8217;s or consultant&#8217;s attention on short-term performance at the expense of the Company&#8217;s long-term objectives. Accordingly, transactions in puts, calls or other derivative securities involving the Company&#8217;s equity securities, on an exchange or in any other organized market, are prohibited by this Program.</font></div><div style="margin-bottom:12pt;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">3.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Hedging Transactions</font></div><div style="margin-bottom:12pt;text-indent:40.3pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Certain forms of hedging or monetization transactions, such as zero-cost collars and forward sale contracts, allow an officer, director, employee or consultant to lock in much of the value of his or her stock holdings, often in exchange for all or part of the potential for upside appreciation in the stock. These transactions allow the officer, director, employee, consultant or Specified Person to continue to own the covered securities, but without the full risks and rewards of ownership.  When that occurs, the officer, director, employee or consultant may no longer have the same objectives as the Company&#8217;s other stockholders. Therefore, such transactions involving the Company&#8217;s equity securities are prohibited by this Program.</font></div><div style="margin-bottom:12pt;padding-left:117pt;text-indent:-49.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">4.&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">Purchases of the Company&#8217;s Securities on Margin&#59; Pledging the Company&#8217;s Securities to Secure Margin or Other Loans</font></div><div style="margin-bottom:12pt;text-indent:40.3pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Purchasing on margin means borrowing from a brokerage firm, bank or other entity in order to purchase the Company&#8217;s securities (other than in connection with a cashless exercise of stock options under the Company&#8217;s equity plans). Margin purchases of the Company&#8217;s securities are prohibited by this Program. Pledging the Company&#8217;s securities as collateral to secure loans is also prohibited. This prohibition means, among other things, that the Company&#8217;s officers, directors, employees and consultants and members of the household of any such individual, cannot hold the Company&#8217;s securities in a &#8220;margin account&#8221; (which would allow the holder to borrow against his or her holdings to buy securities).</font></div><div style="margin-bottom:12pt;padding-left:41pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">V.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:24.34pt;text-decoration:underline">RULE 10B5-1 TRADING PLANS</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Overview</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5.6pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">SEC Rule 10b5-1 provides an affirmative defense from insider trading liability under Rule 10b5-1 for transactions under a previously established contract, plan or instruction to trade the Company&#8217;s Stock (a &#8220;Trading Plan&#8221;) entered into in good faith at a time when the insider was not aware of material nonpublic information and in accordance with the terms of </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">10</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5.6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Rule 10b5-1 of the 1934 Act and all applicable state laws. The initiation or revocation of, and any modification to, any such Trading Plan will be deemed to be a transaction in the Company&#8217;s securities and such initiation, revocation or modification is subject to all limitations and prohibitions of transactions involving the Company&#8217;s securities. </font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:5.6pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Each such Trading Plan, and any revocation or modification thereof, shall be submitted to and pre-approved by the Compliance Officer, the President and CEO, Chief Financial Officer or such other person as the Board of Directors may designate from time to time (the &#8220;Authorizing Officer&#8221;), who may impose such conditions on the implementation and operation of the Trading Plan as the Authorizing Officer deems necessary or advisable. Without limiting the generality of the foregoing, the Authorizing Officer may prescribe certain forms of Trading Plans. The Authorizing Officer may also require that Trading Plans be arranged with a specified broker.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">However, compliance of the Trading Plan to the terms of Rule 10b5-1 and the execution of transactions pursuant to the Trading Plan are the sole responsibility of the officer, director or employee initiating the Trading Plan, not the Company or the Authorizing Officer.</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:15.75pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Rule 10b5-1 presents an opportunity for insiders to establish arrangements to sell (or purchase) Company Stock without the restrictions of windows and black-out periods even when there is undisclosed material information. The program might also help reduce negative publicity that may result when key executives sell the Company&#8217;s Stock. Rule 10b5-1 only provides an &#8220;affirmative defense&#8221; in the event there is an insider trading lawsuit. It does not prevent someone from bringing a lawsuit.</font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:8.85pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A director, officer or employee may enter into a Trading Plan only when he or she is not in possession of material nonpublic information, and a director, officer or employee who is subject to the Black-Out Period may enter into a Trading Plan only during a trading window period outside of the Black-Out Period. Although transactions effected under a Trading Plan will not require further pre-clearance at the time of the trade, the transactions (including the quantity and price) made pursuant to a Trading Plan of an officer or director must be reported to the Company promptly on the day of each trade to permit the Company&#8217;s filing coordinator to assist in the preparation and filing of a required Form 4. Once the plan is adopted, the insider must not exercise any influence over the amount of securities to be traded, the price at which securities are to be traded or the date of the trade.  </font></div><div style="margin-bottom:12pt;padding-left:5pt;padding-right:16.4pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">From time to time, for legal or other reasons, the Authorizing Officer may direct that purchases and sales pursuant to any Trading Plan be suspended or discontinued. Failure of the officer, director or employee to discontinue purchases, sales, or gifts as directed shall constitute a violation of the terms of this paragraph and result in a loss of the exemption set forth herein.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:6.4pt;text-indent:39pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">It is the Company&#8217;s policy that employees and directors may make trades pursuant to a Rule 10b5-1 plan provided that (i) such plan meets the requirements of Rule 10b5-1, (ii) such plan was adopted at a time when the employee or director would otherwise have been able to trade under the permitted trading period, as described in this Program and (iii) adoption of the plan was expressly authorized by the Authorizing Officer. Officers, directors and employees may adopt Trading Plans with brokers that outline a pre-set plan for trading </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">11</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:6.4pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">of the Company&#8217;s Stock, including the exercise of options. The exemption provided by a Trading Plan is not available if the plan is established while in possession of material nonpublic information, even if the plan is structured so that the sale takes place only after the material nonpublic information is made public. Trades pursuant to a Trading Plan may occur at any time,</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">subject to a &#8220;cooling-off&#8221; period, as described below, after adoption of the Trading Plan during which time no sales under the Trading Plan can be made. Please review the following description of how a Trading Plan works.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:6.4pt;text-indent:39pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The cooling-offer period between when a Trading Plan is adopted or modified and when trades can occur is&#58;</font></div><div style="margin-bottom:12pt;padding-left:81pt;padding-right:6.4pt;text-indent:-40.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:36.3pt">Section&#160;16 reporting persons&#58; the cooling-off period extends to the later of a full 90 days after adoption or modification of a Trading Plan or two business days after filing the Form 10-K or Form 10-Q covering the fiscal quarter in which the Trading Plan was adopted, up to a maximum of 120 days&#59; and </font></div><div style="margin-bottom:12pt;padding-left:81pt;padding-right:6.4pt;text-indent:-40.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:36.3pt">Employees and any other persons, other than the Company&#58; the cooling-off period extends 30 days after adoption or modification of a Trading Plan </font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:6.45pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Pursuant to Rule 10b5-1, an individual&#8217;s purchase, sale, or gift of securities will not be &#8220;on the basis of&#8221; material, non-public information if&#58;</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:7.35pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">First, before becoming aware of the information, the individual, in good faith, enters into a binding contract to purchase or sell the securities, provides instructions to another individual to sell the securities or adopts a written plan for trading the securities (i.e. the Trading Plan).</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%"> </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Additionally, for Trading Plans entered into by Section 16 reporting persons, the Trading Plan must include a representation in the Trading Plan that the Section 16 reporting person is (1) not aware of any material nonpublic information about the Company or its securities&#59; and (2) adopting the Trading Plan in good faith and not as part of a plan or scheme to evade Rule 10b-5.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Second, the Trading Plan must either&#58;</font></div><div style="margin-bottom:12pt;padding-left:114pt;padding-right:5.4pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">specify the amount of securities to be purchased, sold, or gifted, the price at which the securities are to be purchased, sold, or gifted and the date on which the securities are to be purchased, sold, or gifted&#59;</font></div><div style="margin-bottom:12pt;padding-left:114pt;padding-right:41.65pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">include a written formula or computer program for determining the amount, price and date of the transactions&#59; or</font></div><div style="margin-bottom:12pt;padding-left:114pt;padding-right:11.6pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">prohibit the individual from exercising any subsequent influence over the purchase, sale, or gift of Company Stock under the Trading Plan in question.</font></div><div style="margin-bottom:12pt;padding-left:78pt;padding-right:30.2pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:31.8pt">Third, the purchase, sale, or gift must occur pursuant to the Trading Plan and the individual must not enter into a corresponding hedging transaction or alter or deviate from the Trading Plan.</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">12</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-right:3pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The individual must act in good faith with respect to the Trading Plan for the entire duration of the plan. Except under the limited circumstances permitted by Rule 10b5-1 (including eligible sell-to-cover transactions) and subject to preapproval by the Authorizing Officer, only one Trading Plan may be adopted at a time.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:line-through"> </font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">B.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25pt;text-decoration:underline">Revocation&#47;Amendments to Trading Plans</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:6.75pt;text-indent:34.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Revocation of a Trading Plan should occur only in unusual circumstances. Revocation of a Trading Plan is subject to the prior review and approval of the Authorizing Officer. Once a Trading Plan has been revoked or terminated by the participant, the cooling off periods as described above will apply before trades can occur with respect to a newly establishing Trading Plan. Participants will not be allowed to revoke or terminate a Trading Plan more than once in any twelve-month period.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:6.4pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Under certain circumstances, a Trading Plan must be revoked. This includes circumstances such as the announcement of a merger or the occurrence of an event that would cause the transaction either to violate the law or to have an adverse effect on the Company. The Compliance Officer or administrator of the Company&#8217;s stock plans is authorized to notify the broker in such circumstances, thereby insulating the insider in the event of revocation.</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:5.65pt;text-indent:34.55pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">A person acting in good faith may modify or amend a Trading Plan so long as such modification or amendment is made outside of a Black-Out Period or other period during which the Company has suspended trading in the Company&#8217;s securities, and at a time when the Trading Plan participant does not possess material, non-public information.  Effectiveness of any modification or amendment of a Trading Plan will be subject to the prior review and approval of the Authorizing Officer. Trading Plan modifications or amendments, such as changing the amount subject to the Trading Plan, or the price or timing of the purchase, sale, or gift of the securities underlying a Trading Plan will trigger a new cooling-off period. </font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:5.65pt;text-align:justify;text-indent:34.55pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">You should note that the revocation or amendment of a Trading Plan can result in the loss of an affirmative defense for past or future transactions under a Trading Plan. You should consult with your own legal counsel before deciding to revoke or amend a Trading Plan.</font></div><div style="margin-bottom:12pt;padding-left:78pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">C.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25pt;text-decoration:underline">Discretionary Plans</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:36.5pt;text-indent:34.55pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Discretionary Trading Plans, where the discretion or control over trading is transferred to a broker, are not allowed.</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:6.55pt;text-indent:34.55pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The Authorizing Officer must pre-approve any Trading Plan, arrangement or trading instructions, etc., involving potential sales, purchases, or gifts of the Company&#8217;s Stock or option exercises, including but not limited to, blind trusts or limit orders. The actual transactions effected pursuant to a pre-approved Trading Plan will not be subject to further pre- clearance for transactions in the Company&#8217;s Stock once the Trading Plan or other arrangement has been pre-approved.</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">13</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">D.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Limitation of Liability</font></div><div style="margin-bottom:12pt;text-indent:40.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">None of the Company, the Authorizing Officer or the Company&#8217;s other employees will have any liability for any delay in reviewing, or refusal of, a request related to a Trading Plan. Notwithstanding any review of a Trading Plan pursuant to these procedures, none of the Company, the Authorizing Officer or the Company&#8217;s other employees assumes any liability for the legality or consequences relating to such Trading Plan.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">E.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:25.67pt;text-decoration:underline">Reporting (if required)</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:16.5pt;text-indent:34.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">If required, a Form 144 will be filled out and filed by the individual&#47;brokerage firm in accordance with the existing rules regarding Form 144 filings. A footnote at the bottom of the Form 144 should indicate that the trades &#8220;are in accordance with a Trading Plan that complies with SEC Rule 10b5-1 and was adopted on </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">&#160;&#160;&#160;&#160;&#91;DATE&#93;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8221;.  Form 4s should be filed before the end of the second business day following the date that the broker, dealer or plan administrator informs the individual that a transaction was executed, provided that the date of such notification is not later than the third business day following the trade date. A similar footnote should be placed at the bottom of the Form 4 as outlined above.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">F.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:26.33pt;text-decoration:underline">Options</font></div><div style="text-indent:40.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Cash exercise of options (i.e., you pay cash for the exercise price of the options and do not sell the underlying shares&#59; cash exercise of options does </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">not</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> include broker-assisted cashless exercises) currently can be executed at any time. Same day sales (i.e., you pay cash or sell shares into the market as payment for the exercise price of the options, and then sell all or a portion of the underlying shares) are subject to trading windows&#47;Black-Out Periods and pre-clearance approval requirements.  However, the Company will permit same day sales under Trading Plans. If a broker is required to execute a same day sale in accordance with a Trading Plan, then the Company must have exercise forms attached to the Trading Plan that are signed, undated and with the number of shares to be exercised left blank. Once a broker determines that the time is right to exercise the option and dispose of the shares in accordance with the Trading Plan, the broker will notify the Company in writing and the administrator of the Company&#8217;s stock plans will fill in the number of shares and the date of exercise on the previously signed exercise form. The insider should not be involved with this part of the exercise.</font></div><div style="text-indent:40.5pt"><font><br></font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">G.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Trades Outside of a Trading Plan</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:20.15pt;text-indent:34.55pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Outside of a Black-Out Period, trades which differ from Trading Plan instructions that are already in place are allowed as long as the Trading Plan continues to be followed and such trades comply with all other laws, regulations, and policies under this Program.</font></div><div style="margin-bottom:12pt;padding-left:5.75pt;padding-right:17.3pt;text-indent:34.55pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">Trading Plans do not exempt the individuals from complying with the Section 16 six-month short swing profit rules or liability.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">H.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:24.34pt;text-decoration:underline">Public Announcements</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">14</font></div><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:71.28pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:5.7pt;text-align:justify;text-indent:34.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The Company may make a public announcement that Trading Plans are being implemented in accordance with Rule 10b5-1. It will consider in each case whether a public announcement of a particular Trading Plan should be made. It may also make public announcements or respond to inquiries from the media as transactions are made under a Trading Plan. </font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:5.7pt;text-align:justify;text-indent:34.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The Company reserves the right to publicly disclose, announce, or respond to inquiries from the media regarding the adoption, modification, or termination of a Trading Plan and non-Rule 10b5-1 trading arrangements, or the execution of transactions made under a Trading Plan.</font></div><div style="margin-bottom:12pt;padding-left:77pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">I.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;padding-left:29.01pt;text-decoration:underline">Prohibited Transactions</font></div><div style="margin-bottom:12pt;padding-left:4.5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The transactions prohibited under Section IV(D) of this Program, including among others short sales, put and call options, hedging transactions, margin purchases and pledges to secure margin loans, may not be carried out through a Trading Plan or other arrangement or trading instruction involving potential sales or purchases of the Company&#8217;s securities.</font></div><div style="margin-bottom:12pt;padding-left:42pt;text-align:justify;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">VI.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:19.68pt;text-decoration:underline">INTERPRETATION, AMENDMENT AND IMPLEMENTATION OF THIS PROGRAM </font></div><div style="margin-bottom:12pt;text-align:justify;text-indent:42pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">The Compliance Officer shall have the authority to interpret and update this Program and all related policies and procedures.  In particular, such interpretations and updates of this Program, as authorized by the Compliance Officer, may include amendments to or departures from the terms of this Program, to the extent consistent with the general purpose of this Program and applicable securities laws.</font></div><div style="margin-bottom:12pt;padding-left:42pt;text-align:justify;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%">VII.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:120%;padding-left:15.02pt;text-decoration:underline">EXECUTION AND RETURN OF CERTIFICATION OF COMPLIANCE</font></div><div style="margin-bottom:12pt;padding-left:5.95pt;padding-right:7.5pt;text-indent:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">Promptly after beginning service with the Company (or at any other time the Company requests), all directors, officers, and employees should read, review, and understand this Program. Each director, officer, and employee is required to acknowledge and attest to their understanding of this Program using the Company&#8217;s then current attestation process, which, for example, could include the Compliance Officer and the Certification of Compliance form attached hereto as &#8220;Attachment A.&#8221;</font></div><div style="margin-bottom:12pt"><font><br></font></div><div style="margin-bottom:12pt"><font><br></font></div><div style="margin-bottom:12pt"><font><br></font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">15</font></div><div><font><br></font></div></div></div><div id="i0eb35534ff7144e1bd3a0a2bffebe4bb_4"></div><hr style="page-break-after:always"><div style="min-height:67.68pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div></div><div style="margin-bottom:12pt;padding-left:33.35pt;padding-right:33.35pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:13pt;font-weight:700;line-height:120%">ATTACHMENT A</font></div><div style="margin-bottom:12pt;padding-left:32.45pt;padding-right:32.45pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline">FORM OF CERTIFICATION OF COMPLIANCE</font></div><div style="margin-bottom:12pt;padding-left:6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">TO&#58;&#160;&#160;&#160;&#160;Compliance Officer</font></div><div style="margin-bottom:12pt;padding-left:6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">FROM&#58;&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline"> &#160;&#160;&#160;&#160;</font></div><div style="margin-bottom:12pt;padding-left:6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">RE&#58;&#160;&#160;&#160;&#160;INSIDER TRADING COMPLIANCE PROGRAM OF CODEXIS, INC.</font></div><div style="margin-bottom:12pt;padding-left:6pt;padding-right:4.45pt;text-indent:72pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">I have received, reviewed, and understand the above-referenced Insider Trading Compliance Program and hereby undertake, as a condition to my present and continued affiliation with Codexis, Inc., to comply fully with the policies and procedures contained therein.</font></div><div style="margin-bottom:12pt"><font><br></font></div><div style="margin-bottom:12pt;padding-left:6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline"> &#160;&#160;&#160;&#160;                             </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline"> &#160;&#160;&#160;&#160;                                       </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;   &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</font></div><div style="margin-bottom:12pt;padding-left:36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">SIGNATURE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DATE</font></div><div style="margin-bottom:12pt;padding-left:36pt;text-indent:36pt"><font><br></font></div><div style="margin-bottom:12pt;padding-left:6pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%;text-decoration:underline"> &#160;&#160;&#160;&#160;                             </font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;         </font></div><div style="margin-bottom:12pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#160;&#160;&#160;&#160;TITLE</font></div><div style="height:45.36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>6
<FILENAME>exhibit231auditconsent2024.htm
<DESCRIPTION>EX-23.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="if0da970846524ee2871f45a63525ae99_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">Exhibit 23.1</font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="margin-top:12pt;text-align:right"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:700;line-height:100%">Consent of Independent Registered Public Accounting Firm</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:120%">We consent to the incorporation by reference in the registration statement (No. 333-279082) on Form S-3 and registration statements (No. 333-167752, 333-172166, 333-179903, 333-187711, 333-194524, 333-202596, 333-210022, 333-216587, 333-223693, 333-224885, 333-230037, 333-232262, 333-269163, 333-273661, 333-273662, and 333-281429) on Form S-8 of our report dated February 27, 2025, with respect to the consolidated financial statements of Codexis, Inc. and subsidiaries.</font></div><div style="margin-top:0.12pt;text-align:justify"><font><br></font></div><div style="margin-top:12pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:112%">&#47;s&#47; KPMG LLP.</font></div><div style="margin-bottom:0.04pt;padding-left:0.22pt;padding-right:0.22pt;text-align:center"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">San Francisco, California</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:120%">February 27, 2025</font></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="margin-bottom:0.04pt;margin-top:12pt;padding-left:18pt;text-align:justify;text-indent:-0.18pt"><font><br></font></div><div style="height:92.16pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="padding-right:-4.3pt;text-align:justify"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.2
<SEQUENCE>7
<FILENAME>exhibit232auditconsent2024.htm
<DESCRIPTION>EX-23.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i5a516a4ee6c04222a33c88632fb6e522_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:700;line-height:100%">Exhibit 23.2</font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="margin-top:12pt;text-align:right"><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%;text-decoration:underline">Consent of Independent Registered Public Accounting Firm</font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:112%">We hereby consent to the incorporation by reference in the Registration Statements on Form S-3 (No. 333-279082) and Form S-8 (No. 333-167752, 333-172166, 333-179903, 333-187711, 333-194524, 333-202596, 333-210022, 333-216587, 333-223693, 333-224885, 333-230037, 333-232262, 333-269163, 333-273661, 333-273662, and 333-281429) of Codexis, Inc. of our report dated February 28, 2024, relating to the consolidated financial statements, which appears in this Annual Report on Form 10-K.</font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">&#47;s&#47; BDO USA, P.C.</font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">San Francisco, CA</font></div><div style="margin-top:12pt;text-align:justify"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10.5pt;font-weight:400;line-height:100%">February 27, 2025</font></div><div style="text-align:justify"><font><br></font></div><div style="margin-top:12pt;text-align:justify"><font><br></font></div><div style="margin-bottom:0.04pt;margin-top:12pt;padding-left:18pt;text-align:justify;text-indent:-0.18pt"><font><br></font></div><div style="height:92.16pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="padding-right:-4.3pt;text-align:justify"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>8
<FILENAME>exhibit311cdxs-20241231.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i807188544dab493cb22fbe146aebed03_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 31.1 </font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">CERTIFICATION </font></div><div style="margin-top:4.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Stephen Dilly, certify that&#58; </font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">I have reviewed this Annual Report on Form 10-K of Codexis, Inc.&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions)&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-18pt"><font><br></font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; February&#160;27, 2025 </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Stephen Dilly</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stephen Dilly</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chairman of the Board of Directors, President, and Chief Executive Officer (Principal Executive Officer)</font></td></tr></table></div><div><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>9
<FILENAME>exhibit312cdxs-20241231.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i03cf10af12c544b79df5f98b4c51d126_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 31.2 </font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;text-decoration:underline">CERTIFICATION </font></div><div style="margin-top:4.5pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Georgia Erbez, certify that&#58; </font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">I have reviewed this Annual Report on Form 10-K of Codexis, Inc.&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report&#59;</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles&#59;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(c)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">Evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5.</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:28.5pt">The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions)&#58;</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(a)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.91pt">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information&#59; and</font></div><div style="margin-top:4.5pt;padding-left:90pt;text-indent:-36pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(b)</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:24.34pt">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</font></div><div style="margin-top:4.5pt;padding-left:54pt;text-indent:-18pt"><font><br></font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; February&#160;27, 2025 </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Georgia Erbez</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Georgia Erbez</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief Financial Officer</font></td></tr></table></div><div><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>10
<FILENAME>exhibit321cdxs-20241231.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="ideae26599ad240f599919acb7c08c63e_1"></div><div style="min-height:42.75pt;width:100%"><div><font><br></font></div></div><div style="text-align:right"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 32.1 </font></div><div style="margin-top:4.5pt;text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CERTIFICATION PURSUANT TO </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">18 U.S.C. SECTION 1350, </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">AS ADOPTED PURSUANT TO </font></div><div style="text-align:center"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002 </font></div><div style="margin-top:9pt;text-indent:24.75pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the Annual Report of Codexis, Inc. (the &#8220;Company&#8221;) on Form 10-K for the fiscal year ended December&#160;31, 2024, as filed with the Securities and Exchange Commission (the &#8220;Report&#8221;), Stephen Dilly, Chairman of the Board of Directors, President and Chief Executive Officer of the Company and Georgia Erbez, Chief Financial Officer of the Company, respectively, do each hereby certify, pursuant to 18 U.S.C. Section&#160;1350, as adopted pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002, that&#58; </font></div><div style="margin-top:9pt;padding-left:54pt;text-indent:-27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.5pt">The Report fully complies with the requirements of Section&#160;13(a) or 15(d) of the Securities Exchange Act of 1934&#59; and</font></div><div style="margin-top:9pt;padding-left:54pt;text-indent:-27pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.5pt">The information in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Date&#58; February&#160;27, 2025 </font></div><div><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:48.900%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Stephen Dilly</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stephen Dilly</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chairman of the Board of Directors, President, and Chief Executive Officer (Principal Executive Officer)</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47;Georgia Erbez</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Georgia Erbez</font></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chief&#160;Financial&#160;Officer</font></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div><font><br></font></div><div><font><br></font></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>11
<FILENAME>cdxs-20241231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:aef94194-0caa-4e4d-9931-7acc6f219269,g:ad5cae60-29a9-4327-bdf6-2c1f9803d5bd-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cdxs="http://www.codexis.com/20241231" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dtr-types1="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.codexis.com/20241231">
  <xs:import namespace="http://fasb.org/srt/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd"/>
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/country/2024" schemaLocation="https://xbrl.sec.gov/country/2024/country-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/cyd-af-sub/2024" schemaLocation="https://xbrl.sec.gov/cyd/2024/cyd-af-sub-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/ecd/2024" schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd"/>
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20241231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20241231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20241231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cdxs-20241231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="CoverPage" roleURI="http://www.codexis.com/role/CoverPage">
        <link:definition>0000001 - Document - Cover Page</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AuditInformation" roleURI="http://www.codexis.com/role/AuditInformation">
        <link:definition>0000002 - Document - Audit Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedBalanceSheets" roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheets">
        <link:definition>9952151 - Statement - Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedBalanceSheetsParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical">
        <link:definition>9952152 - Statement - Consolidated Balance Sheets (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofOperations" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations">
        <link:definition>9952153 - Statement - Consolidated Statements of Operations</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofOperationsParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical">
        <link:definition>9952154 - Statement - Consolidated Statements of Operations (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CondensedConsolidatedStatementsofComprehensiveLoss" roleURI="http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss">
        <link:definition>9952155 - Statement - Condensed Consolidated Statements of Comprehensive Loss</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofStockholdersEquity" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity">
        <link:definition>9952156 - Statement - Consolidated Statements of Stockholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofStockholdersEquityParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical">
        <link:definition>9952157 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofCashFlows" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows">
        <link:definition>9952158 - Statement - Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ConsolidatedStatementsofCashFlowsParenthetical" roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical">
        <link:definition>9952159 - Statement - Consolidated Statements of Cash Flows (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DescriptionofBusiness" roleURI="http://www.codexis.com/role/DescriptionofBusiness">
        <link:definition>9952160 - Disclosure - Description of Business</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BasisofPresentationandSummaryofSignificantAccountingPolicies" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies">
        <link:definition>9952161 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognition" roleURI="http://www.codexis.com/role/RevenueRecognition">
        <link:definition>9952162 - Disclosure - Revenue Recognition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NetLossperShare" roleURI="http://www.codexis.com/role/NetLossperShare">
        <link:definition>9952163 - Disclosure - Net Loss per Share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CollaborativeArrangements" roleURI="http://www.codexis.com/role/CollaborativeArrangements">
        <link:definition>9952164 - Disclosure - Collaborative Arrangements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InvestmentsinNonMarketableSecurities" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecurities">
        <link:definition>9952165 - Disclosure - Investments in Non-Marketable Securities</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurements" roleURI="http://www.codexis.com/role/FairValueMeasurements">
        <link:definition>9952166 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetails">
        <link:definition>9952167 - Disclosure - Balance Sheet Details</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensation" roleURI="http://www.codexis.com/role/StockbasedCompensation">
        <link:definition>9952168 - Disclosure - Stock-based Compensation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CapitalStock" roleURI="http://www.codexis.com/role/CapitalStock">
        <link:definition>9952169 - Disclosure - Capital Stock</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="A401kPlan" roleURI="http://www.codexis.com/role/A401kPlan">
        <link:definition>9952170 - Disclosure - 401(k) Plan</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxes" roleURI="http://www.codexis.com/role/IncomeTaxes">
        <link:definition>9952171 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingencies" roleURI="http://www.codexis.com/role/CommitmentsandContingencies">
        <link:definition>9952172 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Debt" roleURI="http://www.codexis.com/role/Debt">
        <link:definition>9952173 - Disclosure - Debt</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentGeographicalandOtherRevenueInformation" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation">
        <link:definition>9952174 - Disclosure - Segment, Geographical and Other Revenue Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RestructuringCharges" roleURI="http://www.codexis.com/role/RestructuringCharges">
        <link:definition>9952175 - Disclosure - Restructuring Charges</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies">
        <link:definition>9955511 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BasisofPresentationandSummaryofSignificantAccountingPoliciesTables" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables">
        <link:definition>9955512 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionTables" roleURI="http://www.codexis.com/role/RevenueRecognitionTables">
        <link:definition>9955513 - Disclosure - Revenue Recognition (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NetLossperShareTables" roleURI="http://www.codexis.com/role/NetLossperShareTables">
        <link:definition>9955514 - Disclosure - Net Loss per Share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InvestmentsinNonMarketableSecuritiesTables" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables">
        <link:definition>9955515 - Disclosure - Investments in Non-Marketable Securities (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsTables" roleURI="http://www.codexis.com/role/FairValueMeasurementsTables">
        <link:definition>9955516 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetailsTables" roleURI="http://www.codexis.com/role/BalanceSheetDetailsTables">
        <link:definition>9955517 - Disclosure - Balance Sheet Details (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensationTables" roleURI="http://www.codexis.com/role/StockbasedCompensationTables">
        <link:definition>9955518 - Disclosure - Stock-based Compensation (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesTables" roleURI="http://www.codexis.com/role/IncomeTaxesTables">
        <link:definition>9955519 - Disclosure - Income Taxes (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesTables" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesTables">
        <link:definition>9955520 - Disclosure - Commitments and Contingencies (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DebtTables" roleURI="http://www.codexis.com/role/DebtTables">
        <link:definition>9955521 - Disclosure - Debt (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentGeographicalandOtherRevenueInformationTables" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables">
        <link:definition>9955522 - Disclosure - Segment, Geographical and Other Revenue Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DescriptionofBusinessDetails" roleURI="http://www.codexis.com/role/DescriptionofBusinessDetails">
        <link:definition>9955523 - Disclosure - Description of Business (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails">
        <link:definition>9955524 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails">
        <link:definition>9955525 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionDisaggregationofRevenueDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails">
        <link:definition>9955526 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionContractswithCustomerDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails">
        <link:definition>9955527 - Disclosure - Revenue Recognition - Contracts with Customer (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionNarrativeDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails">
        <link:definition>9955528 - Disclosure - Revenue Recognition - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionRevenueRecognizedDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails">
        <link:definition>9955529 - Disclosure - Revenue Recognition - Revenue Recognized (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionPerformanceObligationDetails" roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails">
        <link:definition>9955530 - Disclosure - Revenue Recognition - Performance Obligation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionPerformanceObligationDetails_1" roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1">
        <link:definition>9955530 - Disclosure - Revenue Recognition - Performance Obligation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NetLossperShareDetails" roleURI="http://www.codexis.com/role/NetLossperShareDetails">
        <link:definition>9955531 - Disclosure - Net Loss per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CollaborativeArrangementsNarrativeDetails" roleURI="http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails">
        <link:definition>9955532 - Disclosure - Collaborative Arrangements - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InvestmentsinNonMarketableSecuritiesNarrativeDetails" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails">
        <link:definition>9955533 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails">
        <link:definition>9955534 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" roleURI="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails">
        <link:definition>9955535 - Disclosure - Fair Value Measurements - Schedule of Cash, Cash Equivalents, and Short-Term Investments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsNarrativeDetails" roleURI="http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails">
        <link:definition>9955536 - Disclosure - Fair Value Measurements - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetailsScheduleofInventoryComponentsDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails">
        <link:definition>9955537 - Disclosure - Balance Sheet Details - Schedule of Inventory Components (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetailsNarrativeDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails">
        <link:definition>9955538 - Disclosure - Balance Sheet Details - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetailsPropertyandEquipmentnetDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails">
        <link:definition>9955539 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetailsScheduleofGoodwillDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails">
        <link:definition>9955540 - Disclosure - Balance Sheet Details - Schedule of Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BalanceSheetDetailsOtherAccruedLiabilitiesDetails" roleURI="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails">
        <link:definition>9955541 - Disclosure - Balance Sheet Details - Other Accrued Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensationNarrativeDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails">
        <link:definition>9955542 - Disclosure - Stock-based Compensation - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensationStockBasedCompensationExpenseDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails">
        <link:definition>9955543 - Disclosure - Stock-based Compensation - Stock-Based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensationAssumptionsUsedDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails">
        <link:definition>9955544 - Disclosure - Stock-based Compensation - Assumptions Used (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensationOptionActivityDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails">
        <link:definition>9955545 - Disclosure - Stock-based Compensation - Option Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockbasedCompensationAwardActivityDetails" roleURI="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails">
        <link:definition>9955546 - Disclosure - Stock-based Compensation - Award Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CapitalStockDetails" roleURI="http://www.codexis.com/role/CapitalStockDetails">
        <link:definition>9955547 - Disclosure - Capital Stock (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="A401kPlanDetails" roleURI="http://www.codexis.com/role/A401kPlanDetails">
        <link:definition>9955548 - Disclosure - 401(k) Plan (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails">
        <link:definition>9955549 - Disclosure - Income Taxes - Components of Loss Before Provision for Income Taxes (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails">
        <link:definition>9955550 - Disclosure - Income Taxes - Components of Provision for Income Taxes (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesTaxRateReconciliationDetails" roleURI="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails">
        <link:definition>9955551 - Disclosure - Income Taxes - Tax Rate Reconciliation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails">
        <link:definition>9955552 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesNarrativeDetails" roleURI="http://www.codexis.com/role/IncomeTaxesNarrativeDetails">
        <link:definition>9955553 - Disclosure - Income Taxes - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" roleURI="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails">
        <link:definition>9955554 - Disclosure - Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails" roleURI="http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails">
        <link:definition>9955555 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesNarrativeDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails">
        <link:definition>9955556 - Disclosure - Commitments and Contingencies - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails">
        <link:definition>9955557 - Disclosure - Commitments and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesLeaseCostsDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails">
        <link:definition>9955558 - Disclosure - Commitments and Contingencies - Lease Costs (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesOtherLeaseInformationDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails">
        <link:definition>9955559 - Disclosure - Commitments and Contingencies - Other Lease Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails">
        <link:definition>9955560 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1">
        <link:definition>9955560 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DebtNarrativeDetails" roleURI="http://www.codexis.com/role/DebtNarrativeDetails">
        <link:definition>9955561 - Disclosure - Debt - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DebtScheduleofLongTermDebtInstrumentsDetails" roleURI="http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails">
        <link:definition>9955562 - Disclosure - Debt - Schedule of Long-Term Debt Instruments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DebtScheduleofMaturitiesofLongTermDebtDetails" roleURI="http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails">
        <link:definition>9955563 - Disclosure - Debt - Schedule of Maturities of Long-Term Debt (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentGeographicalandOtherRevenueInformationNarrativeDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails">
        <link:definition>9955564 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails">
        <link:definition>9955565 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentGeographicalandOtherRevenueInformationRevenuesDetails" roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails">
        <link:definition>9955566 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RestructuringChargesDetails" roleURI="http://www.codexis.com/role/RestructuringChargesDetails">
        <link:definition>9955567 - Disclosure - Restructuring Charges (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:element id="cdxs_AuditorInformationAbstract" abstract="true" name="AuditorInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_ResearchandDevelopmentRevenueMember" abstract="true" name="ResearchandDevelopmentRevenueMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_AmortizationOfDiscountOnShortTermInvestments" abstract="false" name="AmortizationOfDiscountOnShortTermInvestments" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" abstract="false" name="IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" abstract="false" name="CostsIncurredInConnectionWithEquitySalesAgreements" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" abstract="false" name="ConcentrationRiskSupplyRiskPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" abstract="false" name="ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="cdxs_AccountingPoliciesTable" abstract="true" name="AccountingPoliciesTable" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:hypercubeItem" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_CashDepositMember" abstract="true" name="CashDepositMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_FourCustomersMember" abstract="true" name="FourCustomersMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_NovelBiotherapeuticsMember" abstract="true" name="NovelBiotherapeuticsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_AccountingPoliciesLineItems" abstract="true" name="AccountingPoliciesLineItems" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_ShippingAndDistributionCost" abstract="false" name="ShippingAndDistributionCost" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ComputerEquipmentAndSoftwareMember" abstract="true" name="ComputerEquipmentAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_OfficeEquipmentAndFurnitureMember" abstract="true" name="OfficeEquipmentAndFurnitureMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ShortTermUnbilledReceivablesMember" abstract="true" name="ShortTermUnbilledReceivablesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_LongTermUnbilledReceivablesMember" abstract="true" name="LongTermUnbilledReceivablesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_RevenueFromContractWithCustomerPaymentTerms" abstract="false" name="RevenueFromContractWithCustomerPaymentTerms" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" abstract="false" name="ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_MerckMember" abstract="true" name="MerckMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_NestecLtd.NestleHealthSciencesMember" abstract="true" name="NestecLtd.NestleHealthSciencesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_NestleHealthScienceMember" abstract="true" name="NestleHealthScienceMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_NovartisMember" abstract="true" name="NovartisMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_RocheMember" abstract="true" name="RocheMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_TakedaPharmaceuticalCoLtdMember" abstract="true" name="TakedaPharmaceuticalCoLtdMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MolecularAssembliesIncMember" abstract="true" name="MolecularAssembliesIncMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MAIAgreementMember" abstract="true" name="MAIAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_PfizerMember" abstract="true" name="PfizerMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SupplyAgreementMember" abstract="true" name="SupplyAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EnzymeSupplyAgreementMember" abstract="true" name="EnzymeSupplyAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_StrategicCollaborationAgreementMember" abstract="true" name="StrategicCollaborationAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_AcquisitionAgreementMember" abstract="true" name="AcquisitionAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_SitagliptinEnzymeMember" abstract="true" name="SitagliptinEnzymeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EnzymeProductMember" abstract="true" name="EnzymeProductMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CollaborativeArrangementConcentrationRiskMember" abstract="true" name="CollaborativeArrangementConcentrationRiskMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MilestoneOneMember" abstract="true" name="MilestoneOneMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MilestoneTwoMember" abstract="true" name="MilestoneTwoMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_UpFrontPaymentMember" abstract="true" name="UpFrontPaymentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MilestonePaymentPerTargetGeneMember" abstract="true" name="MilestonePaymentPerTargetGeneMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SeriesAAndBPreferredStockMember" abstract="true" name="SeriesAAndBPreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CommercializationAndEnzymeSupplyAgreementMember" abstract="true" name="CommercializationAndEnzymeSupplyAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_MasterCollaborationResearchAgreementMember" abstract="true" name="MasterCollaborationResearchAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" abstract="false" name="TermOfCollaborativeResearchAndDevelopmentAgreement" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_CollaborativeArrangementUpfrontFeeAmount" abstract="false" name="CollaborativeArrangementUpfrontFeeAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RevenueRecognitionContingentReceivable" abstract="false" name="RevenueRecognitionContingentReceivable" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" abstract="false" name="RevenueRecognitionContingentAnnualPaymentsTerm" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" abstract="false" name="RevenueRecognitionContingentAnnualReceivableIncrease" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RevenueRecognitionAnnualPayment" abstract="false" name="RevenueRecognitionAnnualPayment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RevenueRecognitionNumberOfAnnualPayment" abstract="false" name="RevenueRecognitionNumberOfAnnualPayment" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" abstract="false" name="RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_NumberOfProgramPlans" abstract="false" name="NumberOfProgramPlans" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" abstract="false" name="ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ContractWithCustomerSalesMilestone" abstract="false" name="ContractWithCustomerSalesMilestone" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RelatedPartyTransactionMilestonePaymentReceived" abstract="false" name="RelatedPartyTransactionMilestonePaymentReceived" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" abstract="false" name="EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRetainerFee" abstract="false" name="ContractWithCustomerLiabilityRetainerFee" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" abstract="false" name="ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" abstract="false" name="ContractWithCustomerLiabilityPortionOfRetainerFee" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" abstract="false" name="ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cdxs_SeriesC1PreferredStockMember" abstract="true" name="SeriesC1PreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_CommonStockWarrantsMember" abstract="true" name="CommonStockWarrantsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_SeriesCAndC1PreferredStockMember" abstract="true" name="SeriesCAndC1PreferredStockMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_ArzedaMember" abstract="true" name="ArzedaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_SeqWellMember" abstract="true" name="SeqWellMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" abstract="false" name="EquitySecuritiesWithoutReadilyDeterminableFairValueShares" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" abstract="false" name="EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" abstract="false" name="CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SanCarlosMember" abstract="true" name="SanCarlosMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_LaboratoryEquipmentMember" abstract="true" name="LaboratoryEquipmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_A2024InducementPlanMember" abstract="true" name="A2024InducementPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_PerformanceShareUnitsPSUsMember" abstract="true" name="PerformanceShareUnitsPSUsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_PerformanceBasedOptionsPBOsMember" abstract="true" name="PerformanceBasedOptionsPBOsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_PerformanceStockUnitsMember" abstract="true" name="PerformanceStockUnitsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_A2022InducementPlanMember" abstract="true" name="A2022InducementPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A2019PlanMember" abstract="true" name="A2019PlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A2019AmendedPlanMember" abstract="true" name="A2019AmendedPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_A2019And2024InducementPlanMember" abstract="true" name="A2019And2024InducementPlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_A2022PSUMember" abstract="true" name="A2022PSUMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A2022PBOMember" abstract="true" name="A2022PBOMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A2022PSUAnd2022PBOMember" abstract="true" name="A2022PSUAnd2022PBOMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" abstract="false" name="ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" abstract="false" name="SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_NumberOfOtherFormerExecutive" abstract="false" name="NumberOfOtherFormerExecutive" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_NumberOfFormerExecutives" abstract="false" name="NumberOfFormerExecutives" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" abstract="false" name="ShareBasedPaymentArrangementExpenseIncreaseDecrease" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_RSUsAndRSAsMember" abstract="true" name="RSUsAndRSAsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:perShareItemType"/>
  <xs:element id="cdxs_PiperSandlerCoMember" abstract="true" name="PiperSandlerCoMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CantorMember" abstract="true" name="CantorMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_CantorSalesAgreementMember" abstract="true" name="CantorSalesAgreementMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" abstract="false" name="SaleOfStockSecuritiesRegisteredAggregateAmount" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SaleOfStockPeriod" abstract="false" name="SaleOfStockPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_SaleOfStockValueOfSharesForIssuance" abstract="false" name="SaleOfStockValueOfSharesForIssuance" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" abstract="false" name="SaleOfStockConsiderationReceivedOnTransactionGross" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_SaleOfStockCommissionFeePercent" abstract="false" name="SaleOfStockCommissionFeePercent" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cdxs_DefinedContributionPlanParticipantEligibilityAge" abstract="false" name="DefinedContributionPlanParticipantEligibilityAge" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" abstract="false" name="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_DeferredTaxAssetsLeaseLiability" abstract="false" name="DeferredTaxAssetsLeaseLiability" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_DeferredTaxLiabilitiesRightOfUseAssets" abstract="false" name="DeferredTaxLiabilitiesRightOfUseAssets" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_OperatingLossAndTaxCreditCarryforwardsTable" abstract="true" name="OperatingLossAndTaxCreditCarryforwardsTable" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:hypercubeItem" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" abstract="true" name="OperatingLossAndTaxCreditCarryforwardsLineItems" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_A200220PenobscotMember" abstract="true" name="A200220PenobscotMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A400PenoscotMember" abstract="true" name="A400PenoscotMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_A501ChesapeakeMember" abstract="true" name="A501ChesapeakeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_PenobscotSpaceFiveYearRenewalOptionMember" abstract="true" name="PenobscotSpaceFiveYearRenewalOptionMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" abstract="true" name="ChesapeakeSpaceFiveYearRenewalOptionMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_TermLoanMember" abstract="true" name="TermLoanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" abstract="false" name="LesseeOperatingLeaseNumberOfRenewalOptions" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_AllowanceForTenantImprovements" abstract="false" name="AllowanceForTenantImprovements" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_OperatingLeaseWriteOffDueToLeaseModification" abstract="false" name="OperatingLeaseWriteOffDueToLeaseModification" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" abstract="false" name="LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cdxs_OperatingLeaseRightOfUseAssetRollForward" abstract="true" name="OperatingLeaseRightOfUseAssetRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" abstract="false" name="OperatingLeaseRightOfUseAssetDueToLeaseModification" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_OperatingLeaseLiabilityRollForward" abstract="true" name="OperatingLeaseLiabilityRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_OperatingLeaseInterestAccretion" abstract="false" name="OperatingLeaseInterestAccretion" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_FinanceLeaseCost" abstract="false" name="FinanceLeaseCost" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_CashPaidAbstract" abstract="true" name="CashPaidAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_OtherInformationAbstract" abstract="true" name="OtherInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cdxs_InnovatusLoanMember" abstract="true" name="InnovatusLoanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_InnovatusLoanFirstTrancheMember" abstract="true" name="InnovatusLoanFirstTrancheMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_InnovatusLoanSecondTrancheMember" abstract="true" name="InnovatusLoanSecondTrancheMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_InnovatusLoanWarrantsMember" abstract="true" name="InnovatusLoanWarrantsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_DebtInstrumentNumberOfTranches" abstract="false" name="DebtInstrumentNumberOfTranches" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_DebtInstrumentFacilityFeePercent" abstract="false" name="DebtInstrumentFacilityFeePercent" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cdxs_DebtInstrumentInterestPaidInKind" abstract="false" name="DebtInstrumentInterestPaidInKind" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cdxs_DebtInstrumentInterestPayableTerm" abstract="false" name="DebtInstrumentInterestPayableTerm" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cdxs_EarlyRepaymentFeePercentage" abstract="false" name="EarlyRepaymentFeePercentage" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cdxs_DebtInstrumentExitFeePercent" abstract="false" name="DebtInstrumentExitFeePercent" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cdxs_ClassOfWarrantOrRightFairValue" abstract="false" name="ClassOfWarrantOrRightFairValue" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_DebtInstrumentPaymentInKindInterest" abstract="false" name="DebtInstrumentPaymentInKindInterest" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_DebtInstrumentAmortizedExitFee" abstract="false" name="DebtInstrumentAmortizedExitFee" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" abstract="false" name="DebtInstrumentUncapitalizedPaymentInKindInterest" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cdxs_NumberOfBusinessSegments" abstract="false" name="NumberOfBusinessSegments" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cdxs_CustomerAMember" abstract="true" name="CustomerAMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerBMember" abstract="true" name="CustomerBMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerCMember" abstract="true" name="CustomerCMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerDMember" abstract="true" name="CustomerDMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerEMember" abstract="true" name="CustomerEMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cdxs_CustomerFMember" abstract="true" name="CustomerFMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_CustomerGMember" abstract="true" name="CustomerGMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_CustomerHMember" abstract="true" name="CustomerHMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cdxs_CustomerIMember" abstract="true" name="CustomerIMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>12
<FILENAME>cdxs-20241231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:aef94194-0caa-4e4d-9931-7acc6f219269,g:ad5cae60-29a9-4327-bdf6-2c1f9803d5bd-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedBalanceSheets"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_e85b1d06-2e4d-4d44-8cf5-a394053564f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_AssetsCurrent_e85b1d06-2e4d-4d44-8cf5-a394053564f0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_e8b90402-f2ad-4ae8-aa1a-01bdb629face" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_Goodwill_e8b90402-f2ad-4ae8-aa1a-01bdb629face" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsAndOtherNoncurrentAssets_43ad9ac1-f8a8-4225-8305-e09a15b2c185" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsAndOtherNoncurrentAssets"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_InvestmentsAndOtherNoncurrentAssets_43ad9ac1-f8a8-4225-8305-e09a15b2c185" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_90d4dd68-1eaa-4cb3-980f-192091c24ea8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_90d4dd68-1eaa-4cb3-980f-192091c24ea8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_659c3bed-3fbb-481a-8be6-84dd545fc245" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_659c3bed-3fbb-481a-8be6-84dd545fc245" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_de76c828-1daa-4e7c-b7b4-4772e5b68c3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_de76c828-1daa-4e7c-b7b4-4772e5b68c3f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent_af0126db-a2be-4ec7-9a6f-7611e8279eaf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsNoncurrent"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_2f2552fb-82aa-4447-a0a3-2c6f36ce45cc" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent_af0126db-a2be-4ec7-9a6f-7611e8279eaf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_65626243-908f-41ef-8225-ee313df1baa6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_766064e4-e454-45b8-be34-5eaff3a9bcbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_65626243-908f-41ef-8225-ee313df1baa6" xlink:to="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_766064e4-e454-45b8-be34-5eaff3a9bcbb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross_5a7d24cd-92b1-4696-b2ce-4377e7d13602" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesReceivableGross"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_65626243-908f-41ef-8225-ee313df1baa6" xlink:to="loc_us-gaap_NotesReceivableGross_5a7d24cd-92b1-4696-b2ce-4377e7d13602" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_667c3187-e25e-4949-9684-2b1e230c14de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_8b6b8f56-11d3-4e7b-b910-014e5a1e8216" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_667c3187-e25e-4949-9684-2b1e230c14de" xlink:to="loc_us-gaap_CommitmentsAndContingencies_8b6b8f56-11d3-4e7b-b910-014e5a1e8216" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_9b35e6d6-55b2-4461-8fc0-117f7ef5210b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_667c3187-e25e-4949-9684-2b1e230c14de" xlink:to="loc_us-gaap_Liabilities_9b35e6d6-55b2-4461-8fc0-117f7ef5210b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_dee57c7a-547b-4b4e-8eeb-26a3ac957187" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_667c3187-e25e-4949-9684-2b1e230c14de" xlink:to="loc_us-gaap_StockholdersEquity_dee57c7a-547b-4b4e-8eeb-26a3ac957187" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_b3f69d97-ab6b-43a3-9328-c2acaed53ba6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital_582148ab-115f-4f5a-b277-3d4618886500" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_b3f69d97-ab6b-43a3-9328-c2acaed53ba6" xlink:to="loc_us-gaap_AdditionalPaidInCapital_582148ab-115f-4f5a-b277-3d4618886500" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue_a1c3e2e8-4f22-4be3-a640-70cc68ac4e7c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_b3f69d97-ab6b-43a3-9328-c2acaed53ba6" xlink:to="loc_us-gaap_CommonStockValue_a1c3e2e8-4f22-4be3-a640-70cc68ac4e7c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_cc1da09b-670c-45f1-b614-1c5f735b94e8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_b3f69d97-ab6b-43a3-9328-c2acaed53ba6" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_cc1da09b-670c-45f1-b614-1c5f735b94e8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_ad106a3a-cb72-4ea8-a52f-e26b548ed765" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_b3f69d97-ab6b-43a3-9328-c2acaed53ba6" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_ad106a3a-cb72-4ea8-a52f-e26b548ed765" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValue_ab1a64a6-104e-466f-b8e9-ab780ed22558" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_b3f69d97-ab6b-43a3-9328-c2acaed53ba6" xlink:to="loc_us-gaap_PreferredStockValue_ab1a64a6-104e-466f-b8e9-ab780ed22558" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross_396ecb95-7605-4391-b776-75aa3069a281" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesReceivableGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_d7d7c49e-c59b-4861-8cae-dac30d42f381" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NotesReceivableGross_396ecb95-7605-4391-b776-75aa3069a281" xlink:to="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_d7d7c49e-c59b-4861-8cae-dac30d42f381" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableGrossCurrent_2306ee47-11b6-4cf6-ac5c-9c8e26136684" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableGrossCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NotesReceivableGross_396ecb95-7605-4391-b776-75aa3069a281" xlink:to="loc_us-gaap_AccountsReceivableGrossCurrent_2306ee47-11b6-4cf6-ac5c-9c8e26136684" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_6f7213fb-8d42-4223-bb0f-095e219da67a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NotesReceivableGross_396ecb95-7605-4391-b776-75aa3069a281" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_6f7213fb-8d42-4223-bb0f-095e219da67a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_42b44308-46c8-457c-b555-38533fde5d31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_42b44308-46c8-457c-b555-38533fde5d31" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCash_fa68be54-cec2-4d63-be35-e4b75eb8e2f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCash"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:to="loc_us-gaap_RestrictedCash_fa68be54-cec2-4d63-be35-e4b75eb8e2f3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestments_0340b9ef-e336-4b41-a264-f80c9d053e0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:to="loc_us-gaap_ShortTermInvestments_0340b9ef-e336-4b41-a264-f80c9d053e0b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_32ee3a00-c8f3-4c8d-a8ba-dda4b9626677" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:to="loc_us-gaap_InventoryNet_32ee3a00-c8f3-4c8d-a8ba-dda4b9626677" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_7ba0ab60-94a9-4e8d-93eb-11e6ecab6fd9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_7ba0ab60-94a9-4e8d-93eb-11e6ecab6fd9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_2504e9b3-122c-4fd1-8a94-acedb0a58d06" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_7d5f4a94-d4a2-45b6-a603-5a118cc6be98" xlink:to="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_2504e9b3-122c-4fd1-8a94-acedb0a58d06" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_26d4916a-7de9-4227-bb2d-47a7296ee539" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_580179ce-e919-40ac-9fc1-f47c9232a478" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_26d4916a-7de9-4227-bb2d-47a7296ee539" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_580179ce-e919-40ac-9fc1-f47c9232a478" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_5d5f26ed-82c4-445a-9aa6-9f2188c2ec6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_26d4916a-7de9-4227-bb2d-47a7296ee539" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_5d5f26ed-82c4-445a-9aa6-9f2188c2ec6c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_8d319fdc-bbfa-4b09-aa5d-78a6e5f28399" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_26d4916a-7de9-4227-bb2d-47a7296ee539" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_8d319fdc-bbfa-4b09-aa5d-78a6e5f28399" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtNoncurrent_9535e95d-4ce0-4d99-927b-4c2a0202d4ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_26d4916a-7de9-4227-bb2d-47a7296ee539" xlink:to="loc_us-gaap_LongTermDebtNoncurrent_9535e95d-4ce0-4d99-927b-4c2a0202d4ae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_3103b3f6-1f26-4cd2-9f77-10179b8235bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_26d4916a-7de9-4227-bb2d-47a7296ee539" xlink:to="loc_us-gaap_LiabilitiesCurrent_3103b3f6-1f26-4cd2-9f77-10179b8235bc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_70f34016-5a1f-4144-8378-52d952220e79" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_9bf401a9-24b1-4a1f-b320-018771456a67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_70f34016-5a1f-4144-8378-52d952220e79" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_9bf401a9-24b1-4a1f-b320-018771456a67" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_de628b15-db98-43ec-bd3a-96107b427c4b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_70f34016-5a1f-4144-8378-52d952220e79" xlink:to="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_de628b15-db98-43ec-bd3a-96107b427c4b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_bb8c6511-7480-4b5f-a24d-c2202361b687" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_70f34016-5a1f-4144-8378-52d952220e79" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_bb8c6511-7480-4b5f-a24d-c2202361b687" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_e6798674-bf07-44a2-b59b-6eaef051bfdd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_70f34016-5a1f-4144-8378-52d952220e79" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_e6798674-bf07-44a2-b59b-6eaef051bfdd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_73ff65d9-36ef-4e1f-bfaf-3ba091366894" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_70f34016-5a1f-4144-8378-52d952220e79" xlink:to="loc_us-gaap_AccountsPayableCurrent_73ff65d9-36ef-4e1f-bfaf-3ba091366894" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofOperations"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_2eb63904-cf03-432a-a9c5-a784c3109954" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAndExpenses"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_c7db261d-b557-484f-9bb3-2d1ff953c4d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_2eb63904-cf03-432a-a9c5-a784c3109954" xlink:to="loc_us-gaap_RestructuringCharges_c7db261d-b557-484f-9bb3-2d1ff953c4d6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_2241b8f5-6f45-4943-aca8-132c79108926" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_2eb63904-cf03-432a-a9c5-a784c3109954" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_2241b8f5-6f45-4943-aca8-132c79108926" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_644ac3f0-2dc2-452e-b7d0-e3411b711e58" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_2eb63904-cf03-432a-a9c5-a784c3109954" xlink:to="loc_us-gaap_AssetImpairmentCharges_644ac3f0-2dc2-452e-b7d0-e3411b711e58" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_ca3839dd-8ec8-4905-bd14-fbdba113fda8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_2eb63904-cf03-432a-a9c5-a784c3109954" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_ca3839dd-8ec8-4905-bd14-fbdba113fda8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_9be804b6-cc3e-4469-983a-2dda2a40a960" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CostsAndExpenses_2eb63904-cf03-432a-a9c5-a784c3109954" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_9be804b6-cc3e-4469-983a-2dda2a40a960" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_94949b24-2639-4eb4-a33c-d6dc6cb779f4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_b49d9b5e-8233-4c11-bdfa-ff8dd8520af2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_94949b24-2639-4eb4-a33c-d6dc6cb779f4" xlink:to="loc_us-gaap_OperatingIncomeLoss_b49d9b5e-8233-4c11-bdfa-ff8dd8520af2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest_a2395d10-fe7b-4fb2-91df-8519824545f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_94949b24-2639-4eb4-a33c-d6dc6cb779f4" xlink:to="loc_us-gaap_InvestmentIncomeInterest_a2395d10-fe7b-4fb2-91df-8519824545f1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_df9b1771-da90-49e7-8cb3-61f6dfe7060e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_94949b24-2639-4eb4-a33c-d6dc6cb779f4" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_df9b1771-da90-49e7-8cb3-61f6dfe7060e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_db245b8a-5087-46a6-9866-3d9ac5c8bde6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_df2d8b31-a10c-4710-a00c-db7ca23ecbfa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_db245b8a-5087-46a6-9866-3d9ac5c8bde6" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_df2d8b31-a10c-4710-a00c-db7ca23ecbfa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_9ec15e75-db77-447b-9477-ef7d88dc9723" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAndExpenses"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_db245b8a-5087-46a6-9866-3d9ac5c8bde6" xlink:to="loc_us-gaap_CostsAndExpenses_9ec15e75-db77-447b-9477-ef7d88dc9723" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_bc50289d-2e6a-4f1d-b734-d36e1ebeb132" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_604f78d5-60c6-4a62-ac19-77ad7c7f625e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_bc50289d-2e6a-4f1d-b734-d36e1ebeb132" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_604f78d5-60c6-4a62-ac19-77ad7c7f625e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_81ff6b14-ece6-42b7-a583-c3aefb14b99b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_bc50289d-2e6a-4f1d-b734-d36e1ebeb132" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_81ff6b14-ece6-42b7-a583-c3aefb14b99b" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CondensedConsolidatedStatementsofComprehensiveLoss"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_6674caf3-517f-435d-860a-03f5ced45144" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_0b6b9522-0f71-4ae7-8feb-845d4b5887d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_6674caf3-517f-435d-860a-03f5ced45144" xlink:to="loc_us-gaap_NetIncomeLoss_0b6b9522-0f71-4ae7-8feb-845d4b5887d8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_00b9449c-3d2f-494d-b4ce-e570eeaa4722" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_6674caf3-517f-435d-860a-03f5ced45144" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_00b9449c-3d2f-494d-b4ce-e570eeaa4722" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_5c703a73-1724-4026-b484-ac3fa2a3aa49" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_5c703a73-1724-4026-b484-ac3fa2a3aa49" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_0a09811f-e61c-4b70-86b8-9f7447a5bc3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_0a09811f-e61c-4b70-86b8-9f7447a5bc3f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockPlans_19b6a134-9807-4e82-ac27-ab7f46dc795b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockPlans"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_us-gaap_ProceedsFromStockPlans_19b6a134-9807-4e82-ac27-ab7f46dc795b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfLongTermDebt_48217ade-8873-438a-800d-0971128cae12" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfLongTermDebt_48217ade-8873-438a-800d-0971128cae12" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDebtIssuanceCosts_eba8aa45-d82f-4454-b3ed-3d289f651c96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDebtIssuanceCosts"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_us-gaap_PaymentsOfDebtIssuanceCosts_eba8aa45-d82f-4454-b3ed-3d289f651c96" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_996f2959-dab5-4421-8220-b600a112aa8c" xlink:href="cdxs-20241231.xsd#cdxs_CostsIncurredInConnectionWithEquitySalesAgreements"/>
    <link:calculationArc order="6" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_996f2959-dab5-4421-8220-b600a112aa8c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_fb851cce-cf75-443b-991e-969302c0efde" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_ca2daf4a-d553-45e2-8eb6-e87b36410902" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_fb851cce-cf75-443b-991e-969302c0efde" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_80e4df45-d82d-409b-850f-27642336b062" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_80e4df45-d82d-409b-850f-27642336b062" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_59e72247-9ffa-4850-ae03-7787636bb47a" xlink:href="cdxs-20241231.xsd#cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_59e72247-9ffa-4850-ae03-7787636bb47a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_449c69d5-5567-4383-adfe-98573c664554" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNoncashIncome"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_OtherNoncashIncome_449c69d5-5567-4383-adfe-98573c664554" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_fc85ed9e-eca8-48fc-ad2f-b5376ddc6e67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_fc85ed9e-eca8-48fc-ad2f-b5376ddc6e67" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_0f32f862-bed6-4a37-9353-0fda2b2b0c0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_0f32f862-bed6-4a37-9353-0fda2b2b0c0a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_c74d8d7a-b731-46aa-a5d4-a4a1cdf5507b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_ShareBasedCompensation_c74d8d7a-b731-46aa-a5d4-a4a1cdf5507b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_0819dde3-76d4-49c6-be2d-57542c86a62b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInFinanceReceivables"/>
    <link:calculationArc order="7" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_0819dde3-76d4-49c6-be2d-57542c86a62b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_ac7cd12a-a763-4cde-998d-7ef4228d52b0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_ac7cd12a-a763-4cde-998d-7ef4228d52b0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_be001ed6-3c67-4449-be71-dbd19079cf1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:calculationArc order="9" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_be001ed6-3c67-4449-be71-dbd19079cf1c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfFinancingCosts_2a13162e-66d6-42e8-8cdb-d6ee0f21d406" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfFinancingCosts"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_AmortizationOfFinancingCosts_2a13162e-66d6-42e8-8cdb-d6ee0f21d406" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_15a7d825-a8ed-44c9-9b34-19e81ebd10be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_15a7d825-a8ed-44c9-9b34-19e81ebd10be" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_8332960e-46af-4b38-9203-ee45dba2fea3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:calculationArc order="12" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_8332960e-46af-4b38-9203-ee45dba2fea3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AmortizationOfDiscountOnShortTermInvestments_2ee2bb07-62ae-4412-8cd7-109d424f4313" xlink:href="cdxs-20241231.xsd#cdxs_AmortizationOfDiscountOnShortTermInvestments"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_cdxs_AmortizationOfDiscountOnShortTermInvestments_2ee2bb07-62ae-4412-8cd7-109d424f4313" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_8b8427d3-7ef1-4184-a033-f856f60921b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_AssetImpairmentCharges_8b8427d3-7ef1-4184-a033-f856f60921b5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_8e215314-153e-407d-8c6d-ff49973dfb0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:calculationArc order="15" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_8e215314-153e-407d-8c6d-ff49973dfb0a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_87660f96-0124-4007-a3ee-7c1c19a0ed13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities"/>
    <link:calculationArc order="16" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_87660f96-0124-4007-a3ee-7c1c19a0ed13" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_81133e86-dbdb-4c6d-95e4-0652cb197307" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_81133e86-dbdb-4c6d-95e4-0652cb197307" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d28a74a4-4703-4f5c-94b4-0785be34ef1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="18" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_NetIncomeLoss_d28a74a4-4703-4f5c-94b4-0785be34ef1c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_0cc61002-4c99-4278-8bbc-1799e0125ccf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:calculationArc order="19" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_9940efbc-d920-42f8-8d89-c8f2d810e684" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_0cc61002-4c99-4278-8bbc-1799e0125ccf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_d9999ee9-18e8-4281-8240-28d75f0f6a81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_d9999ee9-18e8-4281-8240-28d75f0f6a81" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_d56ba347-1947-42d1-a859-5012724d083f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_d56ba347-1947-42d1-a859-5012724d083f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfShortTermInvestments_1f938df8-bc46-441e-8575-65e5022d6a24" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfShortTermInvestments"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:to="loc_us-gaap_ProceedsFromSaleOfShortTermInvestments_1f938df8-bc46-441e-8575-65e5022d6a24" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireShortTermInvestments_5fd2b01e-ec98-485d-9bbe-d366614f3410" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireShortTermInvestments"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:to="loc_us-gaap_PaymentsToAcquireShortTermInvestments_5fd2b01e-ec98-485d-9bbe-d366614f3410" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_aa734b78-3791-426b-b668-534ec2341229" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_aa734b78-3791-426b-b668-534ec2341229" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_5356d22c-35ed-4ae0-8f90-c96116e2bcf9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_0954cfef-c831-485d-8a6b-f9f232bb8317" xlink:to="loc_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_5356d22c-35ed-4ae0-8f90-c96116e2bcf9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_3f439879-4cea-49f5-ac0b-8438ab44c73d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ab6f2795-7e7e-4307-8a3c-ab0d611fe239" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_3f439879-4cea-49f5-ac0b-8438ab44c73d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_ab6f2795-7e7e-4307-8a3c-ab0d611fe239" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_de6ff6f4-262a-4b3a-9919-238c3a0d0f09" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_3f439879-4cea-49f5-ac0b-8438ab44c73d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_de6ff6f4-262a-4b3a-9919-238c3a0d0f09" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_7277219a-dd34-423c-a3ef-3b9f96e79f1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_3f439879-4cea-49f5-ac0b-8438ab44c73d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_7277219a-dd34-423c-a3ef-3b9f96e79f1f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6939dff7-3c4e-4502-9f9e-56810ab6e677" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_59999c62-bca3-4bc6-92e8-51593fccddf1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6939dff7-3c4e-4502-9f9e-56810ab6e677" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_59999c62-bca3-4bc6-92e8-51593fccddf1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalents_e936b458-0615-4e90-a426-9219dc0118c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalents"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6939dff7-3c4e-4502-9f9e-56810ab6e677" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalents_e936b458-0615-4e90-a426-9219dc0118c8" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionRevenueRecognizedDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_7c2ff69e-6a71-43ac-96a0-322ff395ffe1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_c66a2347-b99e-4f11-a1f2-10f40f6746ee" xlink:href="cdxs-20241231.xsd#cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_7c2ff69e-6a71-43ac-96a0-322ff395ffe1" xlink:to="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_c66a2347-b99e-4f11-a1f2-10f40f6746ee" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_189131db-0386-4388-a1ce-f3a938341f6b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_7c2ff69e-6a71-43ac-96a0-322ff395ffe1" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_189131db-0386-4388-a1ce-f3a938341f6b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_f017fd52-dca2-4afb-bc09-cb3756ccc46d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_7c2ff69e-6a71-43ac-96a0-322ff395ffe1" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_f017fd52-dca2-4afb-bc09-cb3756ccc46d" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7d3db4b1-c669-4851-9b5c-fb76544198d1" xlink:href="cdxs-20241231.xsd#cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_bacb7c56-0f38-4f6a-8af6-5b558d022875" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7d3db4b1-c669-4851-9b5c-fb76544198d1" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_bacb7c56-0f38-4f6a-8af6-5b558d022875" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_24fdbbaf-80a1-4007-bde7-c05e8e46313b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7d3db4b1-c669-4851-9b5c-fb76544198d1" xlink:to="loc_us-gaap_Cash_24fdbbaf-80a1-4007-bde7-c05e8e46313b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_54e5ee41-8c83-4360-a7fb-0e9e1f4739ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_f6dfda33-2e4a-4efa-8bdc-88e5b388409b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_54e5ee41-8c83-4360-a7fb-0e9e1f4739ab" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_f6dfda33-2e4a-4efa-8bdc-88e5b388409b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_63161980-96d0-44af-89eb-61ebf69925ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_54e5ee41-8c83-4360-a7fb-0e9e1f4739ab" xlink:to="loc_us-gaap_Cash_63161980-96d0-44af-89eb-61ebf69925ef" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_6bbae10d-98ef-47c5-b964-77c9757c81a8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_8ad5c0df-ba4c-4d60-8654-5577e8f1a1ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_6bbae10d-98ef-47c5-b964-77c9757c81a8" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_8ad5c0df-ba4c-4d60-8654-5577e8f1a1ae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_be270d64-186e-4350-9250-2ad722650947" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_6bbae10d-98ef-47c5-b964-77c9757c81a8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_be270d64-186e-4350-9250-2ad722650947" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_a075c284-0711-46d6-813b-1924a288c8cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_6bbae10d-98ef-47c5-b964-77c9757c81a8" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_a075c284-0711-46d6-813b-1924a288c8cf" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsScheduleofInventoryComponentsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_c5070729-f157-4607-a6ee-ae9fe604c865" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterials_d89f6197-be95-46ed-a3c8-e90d826515c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterials"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_c5070729-f157-4607-a6ee-ae9fe604c865" xlink:to="loc_us-gaap_InventoryRawMaterials_d89f6197-be95-46ed-a3c8-e90d826515c2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcess_86b8e450-469a-4b80-8972-6a2ba3d36dfa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcess"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_c5070729-f157-4607-a6ee-ae9fe604c865" xlink:to="loc_us-gaap_InventoryWorkInProcess_86b8e450-469a-4b80-8972-6a2ba3d36dfa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoods_0a662acb-1dbf-41cf-8d84-c0787e804387" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoods"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_c5070729-f157-4607-a6ee-ae9fe604c865" xlink:to="loc_us-gaap_InventoryFinishedGoods_0a662acb-1dbf-41cf-8d84-c0787e804387" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsPropertyandEquipmentnetDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_fdfc3a75-1d83-4352-83e5-b65d451b74fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_a640b0e9-702e-4030-9950-c126971fce25" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_fdfc3a75-1d83-4352-83e5-b65d451b74fd" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_a640b0e9-702e-4030-9950-c126971fce25" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_a7b1f71c-69ac-4b43-89aa-86a6419b5c55" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_fdfc3a75-1d83-4352-83e5-b65d451b74fd" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_a7b1f71c-69ac-4b43-89aa-86a6419b5c55" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsOtherAccruedLiabilitiesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_2814471b-1e1b-415e-9c2d-d3555d28ca71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_fdd7b503-cd12-4a93-87fb-23324d7f84ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_2814471b-1e1b-415e-9c2d-d3555d28ca71" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_fdd7b503-cd12-4a93-87fb-23324d7f84ec" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseObligation_e8a0babf-0b39-4848-b600-e8610fa1baa4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_2814471b-1e1b-415e-9c2d-d3555d28ca71" xlink:to="loc_us-gaap_PurchaseObligation_e8a0babf-0b39-4848-b600-e8610fa1baa4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_21ee3589-57b4-4f0b-9caf-696ee47ef7df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_2814471b-1e1b-415e-9c2d-d3555d28ca71" xlink:to="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_21ee3589-57b4-4f0b-9caf-696ee47ef7df" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_16a200a9-5fa6-41c6-abfd-cc77092285df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_606aa93e-ba38-43c1-968c-1cecdec0a06f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_16a200a9-5fa6-41c6-abfd-cc77092285df" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_606aa93e-ba38-43c1-968c-1cecdec0a06f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_3fcc7572-c4b5-49bd-a21a-6b4a516bf0f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_16a200a9-5fa6-41c6-abfd-cc77092285df" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_3fcc7572-c4b5-49bd-a21a-6b4a516bf0f9" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_2825594c-adfa-42fc-b7cb-fa91954c8e38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_15321be4-652c-474a-ac4f-26cc21eb468b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_2825594c-adfa-42fc-b7cb-fa91954c8e38" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_15321be4-652c-474a-ac4f-26cc21eb468b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_49faf923-17fb-43cc-b458-4516b53c72ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_2825594c-adfa-42fc-b7cb-fa91954c8e38" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_49faf923-17fb-43cc-b458-4516b53c72ab" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_f0f9cbc4-acb5-4aed-9375-8386411dabc8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_8e631e6d-0993-45af-aac3-19b26a768352" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_f0f9cbc4-acb5-4aed-9375-8386411dabc8" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_8e631e6d-0993-45af-aac3-19b26a768352" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5e7680bb-e804-453d-aa0a-ab2901743b6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_64daeff8-1e8c-4899-8852-fc2b035ec9dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5e7680bb-e804-453d-aa0a-ab2901743b6a" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_64daeff8-1e8c-4899-8852-fc2b035ec9dc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_b36ec48e-c9ea-428c-b203-198c1897b1f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5e7680bb-e804-453d-aa0a-ab2901743b6a" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_b36ec48e-c9ea-428c-b203-198c1897b1f2" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesTaxRateReconciliationDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_2d10c130-f40c-491d-9292-ab024c2d5199" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_2d10c130-f40c-491d-9292-ab024c2d5199" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_0c8b630d-4080-4965-afe9-a78efc849f25" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_0c8b630d-4080-4965-afe9-a78efc849f25" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_fec756b4-7498-4782-840a-ec562b8b8d0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_fec756b4-7498-4782-840a-ec562b8b8d0b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_3e7d3d5a-aa3a-4271-874e-f56551690595" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_3e7d3d5a-aa3a-4271-874e-f56551690595" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_c45dda3b-a7b3-4517-aa3f-1e4a9bebbc71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_c45dda3b-a7b3-4517-aa3f-1e4a9bebbc71" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_2ee99074-66e2-40a1-9082-58815fbd8711" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_2ee99074-66e2-40a1-9082-58815fbd8711" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_dbd502f0-c12b-49e8-bd2a-eabb3d74bb49" xlink:href="cdxs-20241231.xsd#cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_dbd502f0-c12b-49e8-bd2a-eabb3d74bb49" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_0b7e904f-1ecd-4717-bd37-ef633e498c4d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_b0cce70a-7870-4220-8982-9d763e47ed8a" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_0b7e904f-1ecd-4717-bd37-ef633e498c4d" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsDeferredIncome_b8e2b75a-ece3-45a8-8198-a459c6e3f753" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsDeferredIncome"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsDeferredIncome_b8e2b75a-ece3-45a8-8198-a459c6e3f753" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_5a53853f-1cec-45e8-8eb0-322d93b04cc9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_5a53853f-1cec-45e8-8eb0-322d93b04cc9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_574681d5-8634-45d6-ab37-c8d3d53b9e6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_574681d5-8634-45d6-ab37-c8d3d53b9e6c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_0d1c0b12-920a-46b9-b84d-5a9dc7feeb9e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_0d1c0b12-920a-46b9-b84d-5a9dc7feeb9e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_094500e9-ccea-4c92-8ad5-2f5554f52353" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_094500e9-ccea-4c92-8ad5-2f5554f52353" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxAssetsLeaseLiability_1ce6fbec-9404-456b-8257-ead051786291" xlink:href="cdxs-20241231.xsd#cdxs_DeferredTaxAssetsLeaseLiability"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_cdxs_DeferredTaxAssetsLeaseLiability_1ce6fbec-9404-456b-8257-ead051786291" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_9a82e390-b73f-4a45-9b9a-f2ea4144b74f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_9a82e390-b73f-4a45-9b9a-f2ea4144b74f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_57403dbc-38bd-4a24-93e3-1c54fc53811b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_57403dbc-38bd-4a24-93e3-1c54fc53811b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther_3808fcf8-7f60-44e2-b2c2-80678d15d277" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsOther_3808fcf8-7f60-44e2-b2c2-80678d15d277" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses_923d0ad7-01ad-4169-857a-2014afc65211" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses_923d0ad7-01ad-4169-857a-2014afc65211" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_6a6647bc-8a81-426f-a3d2-10bb752ccad8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_6a6647bc-8a81-426f-a3d2-10bb752ccad8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_b56934cc-3cbf-4e38-a2f6-80addf6a72a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsCapitalLossCarryforwards"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsGross_fae1aed8-34d6-44a2-84d0-973a1868c967" xlink:to="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_b56934cc-3cbf-4e38-a2f6-80addf6a72a1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_128c0240-226f-4108-a9b3-c55d81bf4cc5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_7f03c379-f092-4eb9-9968-9743ab625621" xlink:href="cdxs-20241231.xsd#cdxs_DeferredTaxLiabilitiesRightOfUseAssets"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities_128c0240-226f-4108-a9b3-c55d81bf4cc5" xlink:to="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_7f03c379-f092-4eb9-9968-9743ab625621" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_536744b5-65c3-4152-885b-3382c6773fcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_8b372a74-f334-492b-81e6-97ea185152b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_536744b5-65c3-4152-885b-3382c6773fcb" xlink:to="loc_us-gaap_DeferredTaxAssetsGross_8b372a74-f334-492b-81e6-97ea185152b8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_e1515abc-bac5-481c-aef3-1e40f6f9cddf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_536744b5-65c3-4152-885b-3382c6773fcb" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilities_e1515abc-bac5-481c-aef3-1e40f6f9cddf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_e17f5a14-f643-4e52-a49b-dba520bab09e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_536744b5-65c3-4152-885b-3382c6773fcb" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_e17f5a14-f643-4e52-a49b-dba520bab09e" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesLeaseCostsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_29946aca-95df-4488-9e29-2f377d0c9304" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermLeaseCost_7a305f44-eae1-42e1-8b10-8a01cc19f0f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermLeaseCost"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LeaseCost_29946aca-95df-4488-9e29-2f377d0c9304" xlink:to="loc_us-gaap_ShortTermLeaseCost_7a305f44-eae1-42e1-8b10-8a01cc19f0f9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_2d0fec9b-c4c9-4e54-b5c1-9585b3d66b70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LeaseCost_29946aca-95df-4488-9e29-2f377d0c9304" xlink:to="loc_us-gaap_OperatingLeaseCost_2d0fec9b-c4c9-4e54-b5c1-9585b3d66b70" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinanceLeaseCost_eb0e7b61-4871-4f80-8bc7-ebdc08da960e" xlink:href="cdxs-20241231.xsd#cdxs_FinanceLeaseCost"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LeaseCost_29946aca-95df-4488-9e29-2f377d0c9304" xlink:to="loc_cdxs_FinanceLeaseCost_eb0e7b61-4871-4f80-8bc7-ebdc08da960e" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_18607cc6-b5e2-46fd-9504-d1cd8107941f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_efd729d3-85ee-4439-9c03-e38e526899d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_18607cc6-b5e2-46fd-9504-d1cd8107941f" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_efd729d3-85ee-4439-9c03-e38e526899d1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_91dc4949-7f6e-41a7-b963-740059a6bb48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_18607cc6-b5e2-46fd-9504-d1cd8107941f" xlink:to="loc_us-gaap_OperatingLeaseLiability_91dc4949-7f6e-41a7-b963-740059a6bb48" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_c527bdc5-8982-4725-b3b1-1673a76c15a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_0b930fe0-c61f-4a9c-8418-ebf3b316f4d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeaseLiability_c527bdc5-8982-4725-b3b1-1673a76c15a1" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_0b930fe0-c61f-4a9c-8418-ebf3b316f4d6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_cdfcb628-5561-496c-b0b0-cd13ef65ab44" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingLeaseLiability_c527bdc5-8982-4725-b3b1-1673a76c15a1" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_cdfcb628-5561-496c-b0b0-cd13ef65ab44" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_09b3fc18-e550-4c6c-a366-f0253515e5df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_09b3fc18-e550-4c6c-a366-f0253515e5df" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_e3d14e10-1e4b-48cd-9428-4e6b5d2b8a37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_e3d14e10-1e4b-48cd-9428-4e6b5d2b8a37" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_d321aae8-63c9-4bce-b796-bacb353c036b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_d321aae8-63c9-4bce-b796-bacb353c036b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_296fc4b8-986f-404a-a018-39f3ac72ee66" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_296fc4b8-986f-404a-a018-39f3ac72ee66" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_688928ca-fbca-45f2-9054-7a9fb40ace10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_688928ca-fbca-45f2-9054-7a9fb40ace10" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_70f26b92-4860-43d6-8a85-6f87fbb47f39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5f08228e-b18d-43dc-96b5-cc1451a20769" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_70f26b92-4860-43d6-8a85-6f87fbb47f39" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtScheduleofLongTermDebtInstrumentsDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebt_4d5e4807-0b83-4762-840f-f7a1add358fe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentAmortizedExitFee_bf41014d-8cb0-4589-b983-fb36a8d4a247" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentAmortizedExitFee"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_4d5e4807-0b83-4762-840f-f7a1add358fe" xlink:to="loc_cdxs_DebtInstrumentAmortizedExitFee_bf41014d-8cb0-4589-b983-fb36a8d4a247" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentPaymentInKindInterest_6ab81195-41cc-4c18-a5c9-d6c80486749b" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentPaymentInKindInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_4d5e4807-0b83-4762-840f-f7a1add358fe" xlink:to="loc_cdxs_DebtInstrumentPaymentInKindInterest_6ab81195-41cc-4c18-a5c9-d6c80486749b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount_bf705ef3-8bd7-48a8-bda7-93a30b02d0a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_4d5e4807-0b83-4762-840f-f7a1add358fe" xlink:to="loc_us-gaap_DebtInstrumentUnamortizedDiscount_bf705ef3-8bd7-48a8-bda7-93a30b02d0a4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount_2f7c3c8f-600c-4f2f-afa8-0f5e340d4854" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_4d5e4807-0b83-4762-840f-f7a1add358fe" xlink:to="loc_us-gaap_DebtInstrumentFaceAmount_2f7c3c8f-600c-4f2f-afa8-0f5e340d4854" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense_7ed65106-14cb-4c02-abbd-702511fee3ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_4d5e4807-0b83-4762-840f-f7a1add358fe" xlink:to="loc_us-gaap_UnamortizedDebtIssuanceExpense_7ed65106-14cb-4c02-abbd-702511fee3ef" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtScheduleofMaturitiesofLongTermDebtDetails"/>
  <link:calculationLink xlink:role="http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentCarryingAmount_cdb4f98f-3e0e-4d3a-a18d-b789fbc811db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentCarryingAmount"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_5d99a906-bec0-45e7-9b8a-291e2591960b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtInstrumentCarryingAmount_cdb4f98f-3e0e-4d3a-a18d-b789fbc811db" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_5d99a906-bec0-45e7-9b8a-291e2591960b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_63b589c6-ebd6-4a95-92fb-3acc028e558f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtInstrumentCarryingAmount_cdb4f98f-3e0e-4d3a-a18d-b789fbc811db" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_63b589c6-ebd6-4a95-92fb-3acc028e558f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_9252442d-96f8-4e62-a793-0e3fe0f9d338" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtInstrumentCarryingAmount_cdb4f98f-3e0e-4d3a-a18d-b789fbc811db" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_9252442d-96f8-4e62-a793-0e3fe0f9d338" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive_4179acd6-dce3-42c2-85fe-ba32ebee0384" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtInstrumentCarryingAmount_cdb4f98f-3e0e-4d3a-a18d-b789fbc811db" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive_4179acd6-dce3-42c2-85fe-ba32ebee0384" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_93e040b5-928e-4310-829c-b60d0aaf6246" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtInstrumentCarryingAmount_cdb4f98f-3e0e-4d3a-a18d-b789fbc811db" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_93e040b5-928e-4310-829c-b60d0aaf6246" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebt_3df02fa8-d5eb-4f5f-9e63-4e72febe4725" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentAmortizedExitFee_1fbf22b0-aa52-49a4-acb6-1b1ce8059939" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentAmortizedExitFee"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_3df02fa8-d5eb-4f5f-9e63-4e72febe4725" xlink:to="loc_cdxs_DebtInstrumentAmortizedExitFee_1fbf22b0-aa52-49a4-acb6-1b1ce8059939" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount_21728fa6-9860-4a84-bfd3-4457c8d1c1e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_3df02fa8-d5eb-4f5f-9e63-4e72febe4725" xlink:to="loc_us-gaap_DebtInstrumentUnamortizedDiscount_21728fa6-9860-4a84-bfd3-4457c8d1c1e5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense_76bfd343-4b6d-43f3-8535-62ba93ccbfea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_3df02fa8-d5eb-4f5f-9e63-4e72febe4725" xlink:to="loc_us-gaap_UnamortizedDebtIssuanceExpense_76bfd343-4b6d-43f3-8535-62ba93ccbfea" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_45bb1c02-698d-499c-98dc-ab6c679b6306" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_3df02fa8-d5eb-4f5f-9e63-4e72febe4725" xlink:to="loc_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_45bb1c02-698d-499c-98dc-ab6c679b6306" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentCarryingAmount_28585565-72d8-4eb9-844c-88a4900f7ed9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentCarryingAmount"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermDebt_3df02fa8-d5eb-4f5f-9e63-4e72febe4725" xlink:to="loc_us-gaap_DebtInstrumentCarryingAmount_28585565-72d8-4eb9-844c-88a4900f7ed9" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>13
<FILENAME>cdxs-20241231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:aef94194-0caa-4e4d-9931-7acc6f219269,g:ad5cae60-29a9-4327-bdf6-2c1f9803d5bd-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member"/>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofOperations"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:to="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_5b94a714-238a-4401-baba-9b79769fd928_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:to="loc_srt_ProductsAndServicesDomain_5b94a714-238a-4401-baba-9b79769fd928_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:to="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_d62484b2-5744-404d-a4a4-6f2c3f14f417" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:to="loc_us-gaap_ProductMember_d62484b2-5744-404d-a4a4-6f2c3f14f417" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_cf8901c6-27c1-4e3f-9b1b-fe69a2a5f9d2" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_cf8901c6-27c1-4e3f-9b1b-fe69a2a5f9d2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_f5511caa-cb34-4ef2-902a-6bb786b71ed8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_RevenuesAbstract_f5511caa-cb34-4ef2-902a-6bb786b71ed8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c76ad1a5-d237-432b-89de-694b1e6410e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesAbstract_f5511caa-cb34-4ef2-902a-6bb786b71ed8" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c76ad1a5-d237-432b-89de-694b1e6410e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingCostsAndExpensesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_c53790ea-11f0-4d5f-80dd-92501b3681d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_c53790ea-11f0-4d5f-80dd-92501b3681d0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_73a033b9-99d2-4014-b011-65dc8dd6c71b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_73a033b9-99d2-4014-b011-65dc8dd6c71b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f38eb68f-af4b-4021-a914-77f23cad7a0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f38eb68f-af4b-4021-a914-77f23cad7a0c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_787079e0-c83e-4266-9469-39151e48416c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_RestructuringCharges_787079e0-c83e-4266-9469-39151e48416c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_33939bf1-26ea-4d1a-b868-29f37adc9629" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_AssetImpairmentCharges_33939bf1-26ea-4d1a-b868-29f37adc9629" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_6b31e63a-a9cf-4bfe-99fe-02a9d013e6c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAndExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_CostsAndExpenses_6b31e63a-a9cf-4bfe-99fe-02a9d013e6c4" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_d7afca56-d1ab-4aa2-abec-5307d74ebb7d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_OperatingIncomeLoss_d7afca56-d1ab-4aa2-abec-5307d74ebb7d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest_70f5d847-6567-49a9-a280-e50c057ef2d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_InvestmentIncomeInterest_70f5d847-6567-49a9-a280-e50c057ef2d0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_7b9000c5-491e-48b4-9500-833f12675f9d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_7b9000c5-491e-48b4-9500-833f12675f9d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_d59d7bcc-be73-4d02-968b-a3dfbb9dc691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_d59d7bcc-be73-4d02-968b-a3dfbb9dc691" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_10a8a970-f1ae-4e38-9a2a-0fcc75e39f90" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_10a8a970-f1ae-4e38-9a2a-0fcc75e39f90" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_452a653f-3e1f-43d1-81e0-36af742dfa4a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_NetIncomeLoss_452a653f-3e1f-43d1-81e0-36af742dfa4a" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_5712a2a3-7ce7-40cd-a032-737a4add53ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_EarningsPerShareBasic_5712a2a3-7ce7-40cd-a032-737a4add53ad" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_27f39196-6c02-4e0f-b73f-5a075fb46234" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_EarningsPerShareDiluted_27f39196-6c02-4e0f-b73f-5a075fb46234" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_a8f271c4-8ce6-4b38-9671-95919833c260" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_a8f271c4-8ce6-4b38-9671-95919833c260" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_19e55870-3322-4822-8252-cf7b1460a8d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_19e55870-3322-4822-8252-cf7b1460a8d3" xlink:type="arc" order="11"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofOperationsParenthetical"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:to="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:to="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_4ea120b7-cabf-4ab9-b7a5-325879c5c949_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:to="loc_srt_ProductsAndServicesDomain_4ea120b7-cabf-4ab9-b7a5-325879c5c949_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:to="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_cddb12a8-120a-4c1d-a202-4c5803d45f11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:to="loc_us-gaap_ProductMember_cddb12a8-120a-4c1d-a202-4c5803d45f11" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_dcf1883f-4a02-4262-a96c-4b3a65073c34" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_dcf1883f-4a02-4262-a96c-4b3a65073c34" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:to="loc_us-gaap_RelatedPartyDomain_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_5e1bc9c2-6489-451a-bd45-f6f5087245fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:to="loc_us-gaap_RelatedPartyDomain_5e1bc9c2-6489-451a-bd45-f6f5087245fb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_b3dce749-4f22-4af5-893a-dd20c287c07e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_5e1bc9c2-6489-451a-bd45-f6f5087245fb" xlink:to="loc_us-gaap_RelatedPartyMember_b3dce749-4f22-4af5-893a-dd20c287c07e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_14b39bbe-fbb5-4389-a8a0-7fd6a125b197" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_14b39bbe-fbb5-4389-a8a0-7fd6a125b197" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_d889e2d6-487e-4beb-a2a1-02e822ce5a6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_d889e2d6-487e-4beb-a2a1-02e822ce5a6a" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofStockholdersEquity"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_cbe1557f-3e24-4ca8-9153-863d2cd3bc38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_cbe1557f-3e24-4ca8-9153-863d2cd3bc38" xlink:to="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_b06eb5ea-fa2e-4281-ae2e-8581aac36e18_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:to="loc_us-gaap_EquityComponentDomain_b06eb5ea-fa2e-4281-ae2e-8581aac36e18_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:to="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_18adf757-df32-479a-835e-318a37a8fab4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_CommonStockMember_18adf757-df32-479a-835e-318a37a8fab4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_fba3b7ef-eab5-4f54-bf25-3f89053761b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_fba3b7ef-eab5-4f54-bf25-3f89053761b1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_88d95bfd-1d78-406d-8115-190b9f6f2338" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_88d95bfd-1d78-406d-8115-190b9f6f2338" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_d4d44844-b76e-4290-b8ae-897e167ad79d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_RetainedEarningsMember_d4d44844-b76e-4290-b8ae-897e167ad79d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_cbe1557f-3e24-4ca8-9153-863d2cd3bc38" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_0c8932d1-583e-43f3-bb3c-a42f8542f2b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_SharesOutstanding_0c8932d1-583e-43f3-bb3c-a42f8542f2b6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_84cced68-d5b0-4614-8eeb-ceefa3d3316b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockholdersEquity_84cced68-d5b0-4614-8eeb-ceefa3d3316b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2a573a8f-da30-4a61-a6f5-e9ce1942d437" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2a573a8f-da30-4a61-a6f5-e9ce1942d437" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_cf2823c3-9a81-4782-a1af-7bf610e0a13c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_cf2823c3-9a81-4782-a1af-7bf610e0a13c" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesOther_bee2972c-1f63-4ec2-95b8-d95de224b0f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesOther"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesOther_bee2972c-1f63-4ec2-95b8-d95de224b0f8" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued_6c3aa328-c9b5-4471-89e3-d0b2b91e3851" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued_6c3aa328-c9b5-4471-89e3-d0b2b91e3851" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_45710f58-9994-40c4-84c1-37516070d422" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_45710f58-9994-40c4-84c1-37516070d422" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_02dd092f-9f21-4010-8505-b58ca1b28d2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_02dd092f-9f21-4010-8505-b58ca1b28d2c" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_8f071662-32a5-4f7c-a99c-9cf6c3217eb6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_8f071662-32a5-4f7c-a99c-9cf6c3217eb6" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_89cfd099-1e05-4735-92aa-3b92e39660e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_89cfd099-1e05-4735-92aa-3b92e39660e2" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_8f11b75e-8fc5-4efe-aaf6-84afe1b9e549" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_8f11b75e-8fc5-4efe-aaf6-84afe1b9e549" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_06729ace-190f-48c9-a253-76462b7b5a94" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_06729ace-190f-48c9-a253-76462b7b5a94" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_74a73ea0-6017-46cd-bfe3-8b9a499a9422" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_74a73ea0-6017-46cd-bfe3-8b9a499a9422" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d483bbe0-718c-48d9-b448-0a758306c0a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_NetIncomeLoss_d483bbe0-718c-48d9-b448-0a758306c0a6" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_ab7d2a30-f641-443f-9a73-59b5b3dc2178" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_ab7d2a30-f641-443f-9a73-59b5b3dc2178" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_f74c9de9-8a62-46f7-a68f-86f3dbb5014f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_29ae0f45-4fd1-47d5-aee1-2cac7b4b0ff3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofCashFlowsParenthetical"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_8a7d812d-72d2-4c4e-ad1d-d936da700a0a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:to="loc_us-gaap_RelatedPartyDomain_8a7d812d-72d2-4c4e-ad1d-d936da700a0a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_3a6430f9-a645-4adf-b1e5-b28cbb5eb294" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:to="loc_us-gaap_RelatedPartyDomain_3a6430f9-a645-4adf-b1e5-b28cbb5eb294" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_85216d77-af76-47f6-8f81-b9887785e5f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_3a6430f9-a645-4adf-b1e5-b28cbb5eb294" xlink:to="loc_us-gaap_RelatedPartyMember_85216d77-af76-47f6-8f81-b9887785e5f1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_c0e82a5c-726b-4ef3-9856-da0360c3eab7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNoncashIncome"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_OtherNoncashIncome_c0e82a5c-726b-4ef3-9856-da0360c3eab7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_37ce8871-21c1-47a1-b3fb-52f2c9a07255" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_37ce8871-21c1-47a1-b3fb-52f2c9a07255" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestments_0caef5a4-cada-4cca-b280-b910cf07c09e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_ShortTermInvestments_0caef5a4-cada-4cca-b280-b910cf07c09e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_d3fe48f3-1588-498b-bfef-3a69ac51efb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_d3fe48f3-1588-498b-bfef-3a69ac51efb7" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:href="cdxs-20241231.xsd#cdxs_AccountingPoliciesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:href="cdxs-20241231.xsd#cdxs_AccountingPoliciesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_8fe7e924-60d4-4c79-b4d3-30f35efd5a56_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:to="loc_us-gaap_CreditFacilityDomain_8fe7e924-60d4-4c79-b4d3-30f35efd5a56_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_dcbbd466-e0af-40cb-9f58-7d4364b3fb10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:to="loc_us-gaap_CreditFacilityDomain_dcbbd466-e0af-40cb-9f58-7d4364b3fb10" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LetterOfCreditMember_62e0689d-63ad-45a4-9115-af0eab60300c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CreditFacilityDomain_dcbbd466-e0af-40cb-9f58-7d4364b3fb10" xlink:to="loc_us-gaap_LetterOfCreditMember_62e0689d-63ad-45a4-9115-af0eab60300c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_29dedbf1-aa6d-4fab-ad15-3021122577cf_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_29dedbf1-aa6d-4fab-ad15-3021122577cf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_76aa292f-bd36-4520-b264-a51d713b3913" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_76aa292f-bd36-4520-b264-a51d713b3913" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashDepositMember_1ba5da2d-d4ef-463b-9ca7-cdf16e5ead62" xlink:href="cdxs-20241231.xsd#cdxs_CashDepositMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_76aa292f-bd36-4520-b264-a51d713b3913" xlink:to="loc_cdxs_CashDepositMember_1ba5da2d-d4ef-463b-9ca7-cdf16e5ead62" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_17d9775d-238b-46a0-95d8-9637291958dc_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:to="loc_srt_NameOfMajorCustomerDomain_17d9775d-238b-46a0-95d8-9637291958dc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_3bff98f1-476e-4495-9458-04aee39a049b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:to="loc_srt_NameOfMajorCustomerDomain_3bff98f1-476e-4495-9458-04aee39a049b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FourCustomersMember_1906eb88-1b83-41e1-a623-22e0dd515999" xlink:href="cdxs-20241231.xsd#cdxs_FourCustomersMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_3bff98f1-476e-4495-9458-04aee39a049b" xlink:to="loc_cdxs_FourCustomersMember_1906eb88-1b83-41e1-a623-22e0dd515999" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_51dbdc7b-1fea-4955-b375-e3f95812d61a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_51dbdc7b-1fea-4955-b375-e3f95812d61a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5cb060c9-6c88-4a49-acb3-bc7b3c9f6e16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5cb060c9-6c88-4a49-acb3-bc7b3c9f6e16" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_51ea35f4-934c-4165-a20a-861d83d03335" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5cb060c9-6c88-4a49-acb3-bc7b3c9f6e16" xlink:to="loc_us-gaap_AccountsReceivableMember_51ea35f4-934c-4165-a20a-861d83d03335" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_5d1384de-fff1-4f4e-bf76-1fb67b73e3be_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_5d1384de-fff1-4f4e-bf76-1fb67b73e3be_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_68690940-3012-4d6b-a4d7-7943f52df60e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_68690940-3012-4d6b-a4d7-7943f52df60e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_360e91fb-8069-49f0-b5f1-a67994a1e066" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_68690940-3012-4d6b-a4d7-7943f52df60e" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_360e91fb-8069-49f0-b5f1-a67994a1e066" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_5b30e4d0-7136-4ef7-b047-aafc80330e44_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:to="loc_us-gaap_SegmentDomain_5b30e4d0-7136-4ef7-b047-aafc80330e44_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_fdbaca21-5133-4f69-8508-e1bf65188cb9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:to="loc_us-gaap_SegmentDomain_fdbaca21-5133-4f69-8508-e1bf65188cb9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember_90e4f6eb-b718-4eee-8500-9fad90de8705" xlink:href="cdxs-20241231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_fdbaca21-5133-4f69-8508-e1bf65188cb9" xlink:to="loc_cdxs_NovelBiotherapeuticsMember_90e4f6eb-b718-4eee-8500-9fad90de8705" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShippingAndDistributionCost_6b403411-8f2e-43f6-8d5f-f65d6d31ff16" xlink:href="cdxs-20241231.xsd#cdxs_ShippingAndDistributionCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_cdxs_ShippingAndDistributionCost_6b403411-8f2e-43f6-8d5f-f65d6d31ff16" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_784a405f-dfc0-43f3-bd20-5d8f163564eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_AdvertisingExpense_784a405f-dfc0-43f3-bd20-5d8f163564eb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashCurrent_32022c55-a824-4c27-942f-5298c843d2fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_RestrictedCashCurrent_32022c55-a824-4c27-942f-5298c843d2fb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent_3f4b5837-9e4c-4d4c-a76f-7b5af6c0e40c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_RestrictedCashNoncurrent_3f4b5837-9e4c-4d4c-a76f-7b5af6c0e40c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_97817774-bddb-430c-9985-fc73cba25908" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_97817774-bddb-430c-9985-fc73cba25908" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_f66d5dd3-fa17-430f-99ac-eb6983bd1787" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_f66d5dd3-fa17-430f-99ac-eb6983bd1787" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_924898b3-6bd8-48de-967d-5c2e873086c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_Goodwill_924898b3-6bd8-48de-967d-5c2e873086c0" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_c7604cf2-2329-48ee-a35d-4a9d7ca66259" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_c7604cf2-2329-48ee-a35d-4a9d7ca66259" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_25b261db-013d-4822-8fe3-becd77dd38af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_25b261db-013d-4822-8fe3-becd77dd38af" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_c20f75ba-0320-472d-a67c-e401da962591_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_c20f75ba-0320-472d-a67c-e401da962591_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_5391740c-493d-401b-a00a-9d382abb6eeb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:to="loc_us-gaap_EquipmentMember_5391740c-493d-401b-a00a-9d382abb6eeb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_76a8b9eb-fa2d-4b41-8d54-e139cfe85aa9" xlink:href="cdxs-20241231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_76a8b9eb-fa2d-4b41-8d54-e139cfe85aa9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_6d9cf958-48c2-4dbc-bc41-45dd93e78a63" xlink:href="cdxs-20241231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_6d9cf958-48c2-4dbc-bc41-45dd93e78a63" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_548d0faf-4837-4d2c-a309-eccbfdeef01f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_25b261db-013d-4822-8fe3-becd77dd38af" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_548d0faf-4837-4d2c-a309-eccbfdeef01f" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionDisaggregationofRevenueDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_257498d9-895a-4fad-ac7d-f23a52597b23" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_257498d9-895a-4fad-ac7d-f23a52597b23" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:to="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_c4160e83-b77d-41a6-a4ae-717932eca4a2_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:to="loc_srt_ProductsAndServicesDomain_c4160e83-b77d-41a6-a4ae-717932eca4a2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:to="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_88d8e375-7dba-4e76-9ac0-bde32a92696d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:to="loc_us-gaap_ProductMember_88d8e375-7dba-4e76-9ac0-bde32a92696d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_d5fae3f3-6faa-46d6-b003-91efb4445429" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_d5fae3f3-6faa-46d6-b003-91efb4445429" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:to="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_11e87629-3904-46d9-a297-a32da74ed927_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:to="loc_srt_SegmentGeographicalDomain_11e87629-3904-46d9-a297-a32da74ed927_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:to="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_9fbe6b55-1377-409e-ba64-401de65cb9c0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:to="loc_srt_AmericasMember_9fbe6b55-1377-409e-ba64-401de65cb9c0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_b10966e3-4ce8-483b-8e04-52d629184677" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EMEAMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:to="loc_us-gaap_EMEAMember_b10966e3-4ce8-483b-8e04-52d629184677" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_5fdaa839-cbd1-42d2-828c-159f356d23f3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AsiaPacificMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:to="loc_srt_AsiaPacificMember_5fdaa839-cbd1-42d2-828c-159f356d23f3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f08bc11b-dd49-49cd-96d0-d4e7c560a71d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_257498d9-895a-4fad-ac7d-f23a52597b23" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f08bc11b-dd49-49cd-96d0-d4e7c560a71d" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_306145b0-0246-43f3-8551-68d60e65e2a5_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:to="loc_srt_RangeMember_306145b0-0246-43f3-8551-68d60e65e2a5_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:to="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_1810cb89-6f5c-45fe-bde0-dbc5fcea1dae" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:to="loc_srt_MinimumMember_1810cb89-6f5c-45fe-bde0-dbc5fcea1dae" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_437b80b4-7f4d-4f01-b40f-3b054f2e6fa8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:to="loc_srt_MaximumMember_437b80b4-7f4d-4f01-b40f-3b054f2e6fa8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_12cde990-2f8f-4791-8015-158ebcf4e5c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_12cde990-2f8f-4791-8015-158ebcf4e5c8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_7d350ae0-d4df-4a68-8f5d-afb02775d5bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_12cde990-2f8f-4791-8015-158ebcf4e5c8" xlink:to="loc_us-gaap_AccountsReceivableMember_7d350ae0-d4df-4a68-8f5d-afb02775d5bf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain_a527ad10-b776-4d46-9451-1c21ece32410_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:to="loc_us-gaap_ReceivableTypeDomain_a527ad10-b776-4d46-9451-1c21ece32410_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:to="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShortTermUnbilledReceivablesMember_8454dbfe-2d33-437f-984a-6a4762a4b651" xlink:href="cdxs-20241231.xsd#cdxs_ShortTermUnbilledReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:to="loc_cdxs_ShortTermUnbilledReceivablesMember_8454dbfe-2d33-437f-984a-6a4762a4b651" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LongTermUnbilledReceivablesMember_de39f34f-e242-4ae5-99de-cd704f060abd" xlink:href="cdxs-20241231.xsd#cdxs_LongTermUnbilledReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:to="loc_cdxs_LongTermUnbilledReceivablesMember_de39f34f-e242-4ae5-99de-cd704f060abd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_ae8e24ac-3a5a-49f6-a74b-5cf59f8b67be" xlink:href="cdxs-20241231.xsd#cdxs_RevenueFromContractWithCustomerPaymentTerms"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_ae8e24ac-3a5a-49f6-a74b-5cf59f8b67be" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_4f0e7179-def5-4e08-b53d-fbd5544bbe65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_4f0e7179-def5-4e08-b53d-fbd5544bbe65" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_0321a59b-6686-4cc9-adf4-03de6ffd5fdd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_0321a59b-6686-4cc9-adf4-03de6ffd5fdd" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionPerformanceObligationDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:to="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:to="loc_srt_ProductsAndServicesDomain_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:to="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_43df4fc4-9274-4748-82cb-d17ce9a2c78f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:to="loc_us-gaap_ProductMember_43df4fc4-9274-4748-82cb-d17ce9a2c78f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_5bc73cc0-d2b4-42af-9591-dc348f5d19f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_5bc73cc0-d2b4-42af-9591-dc348f5d19f9" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_7bbe3b80-999c-4520-8785-33d39aabea37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_7bbe3b80-999c-4520-8785-33d39aabea37" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_8ee24347-0866-4337-bf0c-43f66b0f8fc0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_8ee24347-0866-4337-bf0c-43f66b0f8fc0" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionPerformanceObligationDetails_1"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails_1" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:to="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:to="loc_srt_ProductsAndServicesDomain_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:to="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_43df4fc4-9274-4748-82cb-d17ce9a2c78f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:to="loc_us-gaap_ProductMember_43df4fc4-9274-4748-82cb-d17ce9a2c78f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_7bbe3b80-999c-4520-8785-33d39aabea37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_7bbe3b80-999c-4520-8785-33d39aabea37" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_8ee24347-0866-4337-bf0c-43f66b0f8fc0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_8ee24347-0866-4337-bf0c-43f66b0f8fc0" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#NetLossperShareDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2c797256-843e-49a5-b457-9197879ae30a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2c797256-843e-49a5-b457-9197879ae30a" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76dbfc5f-5c63-476d-bed5-043add7400d6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_76dbfc5f-5c63-476d-bed5-043add7400d6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockCompensationPlanMember_ccf46781-0186-4c62-85de-993931e5e3d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockCompensationPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:to="loc_us-gaap_StockCompensationPlanMember_ccf46781-0186-4c62-85de-993931e5e3d6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WarrantMember_d858c63a-ff8f-4da8-856f-ee59d04d9afa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WarrantMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:to="loc_us-gaap_WarrantMember_d858c63a-ff8f-4da8-856f-ee59d04d9afa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_9235f35f-d2e7-44a1-84c3-1a1ea959cd6d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:to="loc_us-gaap_EmployeeStockMember_9235f35f-d2e7-44a1-84c3-1a1ea959cd6d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_eab02ee7-e68d-48e1-acfa-39f2c564aa28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2c797256-843e-49a5-b457-9197879ae30a" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_eab02ee7-e68d-48e1-acfa-39f2c564aa28" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CollaborativeArrangementsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember_28ed7ddd-f44b-488b-bdee-024cb4bf957c" xlink:href="cdxs-20241231.xsd#cdxs_MerckMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_MerckMember_28ed7ddd-f44b-488b-bdee-024cb4bf957c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestecLtd.NestleHealthSciencesMember_d0f52cc2-abac-4b4a-807f-1622984a1cdd" xlink:href="cdxs-20241231.xsd#cdxs_NestecLtd.NestleHealthSciencesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_NestecLtd.NestleHealthSciencesMember_d0f52cc2-abac-4b4a-807f-1622984a1cdd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestleHealthScienceMember_0f4e146e-6e3d-453a-960d-17f33ec8d709" xlink:href="cdxs-20241231.xsd#cdxs_NestleHealthScienceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_NestleHealthScienceMember_0f4e146e-6e3d-453a-960d-17f33ec8d709" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovartisMember_1d119916-be3b-47b5-ae2c-c26e856f6fba" xlink:href="cdxs-20241231.xsd#cdxs_NovartisMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_NovartisMember_1d119916-be3b-47b5-ae2c-c26e856f6fba" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RocheMember_03d31d26-3e86-41aa-8fa7-eec09a13900d" xlink:href="cdxs-20241231.xsd#cdxs_RocheMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_RocheMember_03d31d26-3e86-41aa-8fa7-eec09a13900d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TakedaPharmaceuticalCoLtdMember_7070a009-ad35-4a45-8fdb-c0a2988d5e4c" xlink:href="cdxs-20241231.xsd#cdxs_TakedaPharmaceuticalCoLtdMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_TakedaPharmaceuticalCoLtdMember_7070a009-ad35-4a45-8fdb-c0a2988d5e4c" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_8a151360-195b-4016-98c3-8b53e88922ef" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_MolecularAssembliesIncMember_8a151360-195b-4016-98c3-8b53e88922ef" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MAIAgreementMember_186cb81b-99a8-4dba-98f5-60eee2ccf2f3" xlink:href="cdxs-20241231.xsd#cdxs_MAIAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_MAIAgreementMember_186cb81b-99a8-4dba-98f5-60eee2ccf2f3" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PfizerMember_d16eb63b-c49d-4de4-8018-f5b8b24318df" xlink:href="cdxs-20241231.xsd#cdxs_PfizerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_PfizerMember_d16eb63b-c49d-4de4-8018-f5b8b24318df" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_0ae81756-f37a-4846-8e62-73e94c756d17_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_0ae81756-f37a-4846-8e62-73e94c756d17_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember_0ede227a-69fb-46db-8900-f60a953c8bc9" xlink:href="cdxs-20241231.xsd#cdxs_SupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_SupplyAgreementMember_0ede227a-69fb-46db-8900-f60a953c8bc9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeSupplyAgreementMember_2e2966bb-a1f7-4a47-ad27-f703ecbc8c7d" xlink:href="cdxs-20241231.xsd#cdxs_EnzymeSupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_EnzymeSupplyAgreementMember_2e2966bb-a1f7-4a47-ad27-f703ecbc8c7d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_StrategicCollaborationAgreementMember_66984d82-a9fa-45c0-90ac-8b0b7b978338" xlink:href="cdxs-20241231.xsd#cdxs_StrategicCollaborationAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_StrategicCollaborationAgreementMember_66984d82-a9fa-45c0-90ac-8b0b7b978338" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AcquisitionAgreementMember_7a609c14-d83b-43cf-9d53-78d791f4c852" xlink:href="cdxs-20241231.xsd#cdxs_AcquisitionAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_AcquisitionAgreementMember_7a609c14-d83b-43cf-9d53-78d791f4c852" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_2ef5e1c7-306c-452d-9a2c-4910a8aabf76_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:to="loc_srt_ProductsAndServicesDomain_2ef5e1c7-306c-452d-9a2c-4910a8aabf76_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:to="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_c56f69b9-629a-432e-9c73-fc58bea45479" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_us-gaap_ProductMember_c56f69b9-629a-432e-9c73-fc58bea45479" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SitagliptinEnzymeMember_d70abdd8-5dd5-49c7-92e6-0d3daf602a82" xlink:href="cdxs-20241231.xsd#cdxs_SitagliptinEnzymeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_cdxs_SitagliptinEnzymeMember_d70abdd8-5dd5-49c7-92e6-0d3daf602a82" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_62762183-e571-4fee-94b0-ce76fc633769" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_62762183-e571-4fee-94b0-ce76fc633769" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RoyaltyMember_02f21eb1-03ba-4e34-bc57-be9551fd3de0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RoyaltyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_us-gaap_RoyaltyMember_02f21eb1-03ba-4e34-bc57-be9551fd3de0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeProductMember_5bb0d861-46ff-43c5-8196-4dbdc5591e04" xlink:href="cdxs-20241231.xsd#cdxs_EnzymeProductMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_cdxs_EnzymeProductMember_5bb0d861-46ff-43c5-8196-4dbdc5591e04" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_59b57f67-7382-40bf-954f-1ca78ddea0fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:to="loc_us-gaap_SalesRevenueNetMember_59b57f67-7382-40bf-954f-1ca78ddea0fc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_580b3799-9463-421f-91e3-882c16be2312" xlink:href="cdxs-20241231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_580b3799-9463-421f-91e3-882c16be2312" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerMember_b56894cc-d5fb-4f2c-9035-cac624392b3e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerMember_b56894cc-d5fb-4f2c-9035-cac624392b3e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_3f63355c-1a86-470c-a4d1-7624f9646a29_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_3f63355c-1a86-470c-a4d1-7624f9646a29_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_4b37c0e1-5557-4827-abf2-422b5e860906" xlink:href="cdxs-20241231.xsd#cdxs_CollaborativeArrangementConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:to="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_4b37c0e1-5557-4827-abf2-422b5e860906" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_51d93015-56a9-4cff-b611-de675b159f6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_51d93015-56a9-4cff-b611-de675b159f6c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_9150f7e9-f256-4dd7-8298-7dbab9e22329_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_9150f7e9-f256-4dd7-8298-7dbab9e22329_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_b5f99a45-81f2-433a-835f-4127dcc48fd6" xlink:href="cdxs-20241231.xsd#cdxs_MilestoneOneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_MilestoneOneMember_b5f99a45-81f2-433a-835f-4127dcc48fd6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_7d911942-4118-4436-9d10-1f18fcf34c51" xlink:href="cdxs-20241231.xsd#cdxs_MilestoneTwoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_MilestoneTwoMember_7d911942-4118-4436-9d10-1f18fcf34c51" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_UpFrontPaymentMember_3006ade3-85c5-4d8c-bae1-a6e0b438d09a" xlink:href="cdxs-20241231.xsd#cdxs_UpFrontPaymentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_UpFrontPaymentMember_3006ade3-85c5-4d8c-bae1-a6e0b438d09a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestonePaymentPerTargetGeneMember_60251453-f732-4b0f-bc33-6b206aff8ca7" xlink:href="cdxs-20241231.xsd#cdxs_MilestonePaymentPerTargetGeneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_MilestonePaymentPerTargetGeneMember_60251453-f732-4b0f-bc33-6b206aff8ca7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_606755f6-3473-4f37-9aa0-08d3607f210c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:to="loc_us-gaap_ClassOfStockDomain_606755f6-3473-4f37-9aa0-08d3607f210c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:to="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember_f0b1f820-648d-42bf-ad62-da5b073652cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:to="loc_us-gaap_SeriesAPreferredStockMember_f0b1f820-648d-42bf-ad62-da5b073652cc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_c6320aa2-cb01-4a2e-ac2c-2a56632ab69f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_c6320aa2-cb01-4a2e-ac2c-2a56632ab69f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_9a6ed9e3-a2dd-44cd-bcc7-08d7a1f6d13e" xlink:href="cdxs-20241231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_9a6ed9e3-a2dd-44cd-bcc7-08d7a1f6d13e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_ac540c64-b3be-41a9-ba02-13e796b8eb61_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_ac540c64-b3be-41a9-ba02-13e796b8eb61_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_06e60c64-e1f2-42ed-ac5f-e5c95abd0533" xlink:href="cdxs-20241231.xsd#cdxs_CommercializationAndEnzymeSupplyAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:to="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_06e60c64-e1f2-42ed-ac5f-e5c95abd0533" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember_e00055a0-4cb7-412b-b5d1-6a0e0b5b164c" xlink:href="cdxs-20241231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:to="loc_cdxs_MasterCollaborationResearchAgreementMember_e00055a0-4cb7-412b-b5d1-6a0e0b5b164c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_b17c765f-3917-4be8-8b0c-57d7080b2897_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:to="loc_us-gaap_RelatedPartyDomain_b17c765f-3917-4be8-8b0c-57d7080b2897_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_530f5765-1df1-4380-8f29-27c4f02e0dcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:to="loc_us-gaap_RelatedPartyDomain_530f5765-1df1-4380-8f29-27c4f02e0dcb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_64a02ed6-cd81-4786-8a9c-03908fbc4d79" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_530f5765-1df1-4380-8f29-27c4f02e0dcb" xlink:to="loc_us-gaap_RelatedPartyMember_64a02ed6-cd81-4786-8a9c-03908fbc4d79" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_c76652d0-5f09-4fc4-b6b0-6b0df3607082" xlink:href="cdxs-20241231.xsd#cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_c76652d0-5f09-4fc4-b6b0-6b0df3607082" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_1f012806-bb08-41ae-9a28-9c3b1960cdc2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_1f012806-bb08-41ae-9a28-9c3b1960cdc2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_12593098-79b2-4911-a31c-868275fe11e8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_12593098-79b2-4911-a31c-868275fe11e8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_544eeb15-c4c9-4416-a64c-eefbe9d017b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_544eeb15-c4c9-4416-a64c-eefbe9d017b5" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_9aa229e8-cf14-45c1-a296-be749ff42334" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ContractWithCustomerLiability_9aa229e8-cf14-45c1-a296-be749ff42334" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_42bb7c1b-9f08-4491-806a-c72c7fff3987" xlink:href="cdxs-20241231.xsd#cdxs_CollaborativeArrangementUpfrontFeeAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_42bb7c1b-9f08-4491-806a-c72c7fff3987" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_5859a7c4-0df3-4c0c-a934-cb81daadc1fb" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_5859a7c4-0df3-4c0c-a934-cb81daadc1fb" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_56e985ef-0169-4909-96d4-760e338bb46c" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentAnnualPaymentsTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_56e985ef-0169-4909-96d4-760e338bb46c" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_8c70ef95-0edd-4fd4-aba3-503fc12fd78d" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentAnnualReceivableIncrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_8c70ef95-0edd-4fd4-aba3-503fc12fd78d" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionAnnualPayment_6c18b10b-6739-4e7e-9314-94d30192e95c" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionAnnualPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionAnnualPayment_6c18b10b-6739-4e7e-9314-94d30192e95c" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_a794e909-5d88-4da7-8b30-a3d6d9d09065" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionNumberOfAnnualPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_a794e909-5d88-4da7-8b30-a3d6d9d09065" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_8c72af39-f54e-463f-bfdc-23ed03cb97c8" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_8c72af39-f54e-463f-bfdc-23ed03cb97c8" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfProgramPlans_b8e460fb-734b-4e8f-bb17-8f30bf79fd6c" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfProgramPlans"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_NumberOfProgramPlans_b8e460fb-734b-4e8f-bb17-8f30bf79fd6c" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_3bc6e9c8-1e66-45de-a287-0cd6c52cb8fc" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_3bc6e9c8-1e66-45de-a287-0cd6c52cb8fc" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_0130e8c1-c695-4e7a-98da-a85a91a7dc91" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_0130e8c1-c695-4e7a-98da-a85a91a7dc91" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_d6a89146-6f8a-41d6-894a-156a2ec22ff2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_d6a89146-6f8a-41d6-894a-156a2ec22ff2" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerSalesMilestone_79cbadd9-ba2f-491a-b8a3-bb7a9e8aba82" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerSalesMilestone"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerSalesMilestone_79cbadd9-ba2f-491a-b8a3-bb7a9e8aba82" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_aa936916-103d-45a9-86d9-8e496e47c885" xlink:href="cdxs-20241231.xsd#cdxs_RelatedPartyTransactionMilestonePaymentReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_aa936916-103d-45a9-86d9-8e496e47c885" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_9d08a485-95f8-4191-b9ba-b201744edd5a" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_9d08a485-95f8-4191-b9ba-b201744edd5a" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_0b5ca09c-a2a6-4647-8061-f55c1b697691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_0b5ca09c-a2a6-4647-8061-f55c1b697691" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_5a967ff5-4a36-47ef-ad35-2131540189e3" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFee"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_5a967ff5-4a36-47ef-ad35-2131540189e3" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_cde6a3a7-f062-4217-99d3-e29505289f80" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_cde6a3a7-f062-4217-99d3-e29505289f80" xlink:type="arc" order="21"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_850af128-f28b-4499-8a00-32be554be4fa" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_850af128-f28b-4499-8a00-32be554be4fa" xlink:type="arc" order="22"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_fe0fc7eb-7340-4129-8de2-738fede0a7a0" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_fe0fc7eb-7340-4129-8de2-738fede0a7a0" xlink:type="arc" order="23"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#InvestmentsinNonMarketableSecuritiesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:to="loc_us-gaap_ClassOfStockDomain_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:to="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_d070f7ce-f3ba-4a2f-ab0c-8ebae92c87ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_d070f7ce-f3ba-4a2f-ab0c-8ebae92c87ce" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_2e3f109e-981d-4d2c-a788-290c97b9d444" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_us-gaap_CommonStockMember_2e3f109e-981d-4d2c-a788-290c97b9d444" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_a677f446-7275-46a0-b680-a8b29a7688a6" xlink:href="cdxs-20241231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_a677f446-7275-46a0-b680-a8b29a7688a6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesC1PreferredStockMember_2c1a90b9-3169-4337-a56a-d2792d4334e0" xlink:href="cdxs-20241231.xsd#cdxs_SeriesC1PreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_SeriesC1PreferredStockMember_2c1a90b9-3169-4337-a56a-d2792d4334e0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommonStockWarrantsMember_22961ec8-49c4-4663-97af-0366b06f35ce" xlink:href="cdxs-20241231.xsd#cdxs_CommonStockWarrantsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_CommonStockWarrantsMember_22961ec8-49c4-4663-97af-0366b06f35ce" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesCAndC1PreferredStockMember_5a00d9f8-f160-460f-b8cd-4b0fa0cd04dd" xlink:href="cdxs-20241231.xsd#cdxs_SeriesCAndC1PreferredStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_SeriesCAndC1PreferredStockMember_5a00d9f8-f160-460f-b8cd-4b0fa0cd04dd" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_938dda29-64ba-4bf2-a847-357bd9470e90_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_938dda29-64ba-4bf2-a847-357bd9470e90_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_d0c9920f-65e5-4dde-8b96-6604661c236b" xlink:href="cdxs-20241231.xsd#cdxs_ArzedaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:to="loc_cdxs_ArzedaMember_d0c9920f-65e5-4dde-8b96-6604661c236b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_99492861-0813-45ae-a82d-ad0172672956" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:to="loc_cdxs_MolecularAssembliesIncMember_99492861-0813-45ae-a82d-ad0172672956" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_9950ef70-8d4a-4cc4-a988-163220e8eff2_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_9950ef70-8d4a-4cc4-a988-163220e8eff2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c448a6b0-5a46-4967-8d57-92dae1c20534" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c448a6b0-5a46-4967-8d57-92dae1c20534" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_969a49f9-a352-4a8b-ab48-d29c60397cc9" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c448a6b0-5a46-4967-8d57-92dae1c20534" xlink:to="loc_cdxs_MolecularAssembliesIncMember_969a49f9-a352-4a8b-ab48-d29c60397cc9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:to="loc_us-gaap_RelatedPartyDomain_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_fc15d6df-54c1-417f-90dd-b5dc7e713fb6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:to="loc_us-gaap_RelatedPartyDomain_fc15d6df-54c1-417f-90dd-b5dc7e713fb6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_03996f53-3013-4c90-a59b-5825c32fdeb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RelatedPartyDomain_fc15d6df-54c1-417f-90dd-b5dc7e713fb6" xlink:to="loc_us-gaap_RelatedPartyMember_03996f53-3013-4c90-a59b-5825c32fdeb3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_4dcb4396-9e60-489b-88b8-79f64b04be71_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_4dcb4396-9e60-489b-88b8-79f64b04be71_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_074705a1-97bc-4474-8315-9b302e0b264f" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:to="loc_cdxs_SeqWellMember_074705a1-97bc-4474-8315-9b302e0b264f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_1a24ab20-9c6c-4ceb-84dc-d9648e02ad86" xlink:href="cdxs-20241231.xsd#cdxs_ArzedaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:to="loc_cdxs_ArzedaMember_1a24ab20-9c6c-4ceb-84dc-d9648e02ad86" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:to="loc_us-gaap_EquityComponentDomain_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_785b5000-c8d1-401d-a140-b96be362049d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:to="loc_us-gaap_EquityComponentDomain_785b5000-c8d1-401d-a140-b96be362049d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_2c661ae5-8400-4051-adba-ff57656acffe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_785b5000-c8d1-401d-a140-b96be362049d" xlink:to="loc_us-gaap_CommonStockMember_2c661ae5-8400-4051-adba-ff57656acffe" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_51fb3816-f3fa-4d9d-b731-1015caca33a6_default" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:to="loc_dei_EntityDomain_51fb3816-f3fa-4d9d-b731-1015caca33a6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_882bca4b-84fc-4429-b298-92888be6d749" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:to="loc_dei_EntityDomain_882bca4b-84fc-4429-b298-92888be6d749" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_6c990cd7-cb23-4dbd-a00e-5541d1f7193d" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_882bca4b-84fc-4429-b298-92888be6d749" xlink:to="loc_cdxs_SeqWellMember_6c990cd7-cb23-4dbd-a00e-5541d1f7193d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_fcb23c4f-19ef-4a74-8918-ed290afe1e03_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:to="loc_srt_ProductsAndServicesDomain_fcb23c4f-19ef-4a74-8918-ed290afe1e03_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_e01fda74-52ad-428b-be73-88b2baec55bb" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:to="loc_srt_ProductsAndServicesDomain_e01fda74-52ad-428b-be73-88b2baec55bb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_8dd931cb-f219-4dbd-bbad-8f1ec32f72b1" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_e01fda74-52ad-428b-be73-88b2baec55bb" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_8dd931cb-f219-4dbd-bbad-8f1ec32f72b1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_08dee69e-d44f-4740-9251-24a3f05fcc20" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_08dee69e-d44f-4740-9251-24a3f05fcc20" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_eeee0c43-b13a-4f18-81f7-0563ada93275" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_eeee0c43-b13a-4f18-81f7-0563ada93275" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_68ea1b5b-539c-4079-bac6-1058481cccf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_68ea1b5b-539c-4079-bac6-1058481cccf4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_5215036e-8b4f-4cf2-93f6-f33b05fd6743" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_5215036e-8b4f-4cf2-93f6-f33b05fd6743" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_b90a7c83-9f63-4718-a872-815a701ef5e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_b90a7c83-9f63-4718-a872-815a701ef5e2" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_36bea7ff-c9a5-4a13-889b-4043d146efba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_36bea7ff-c9a5-4a13-889b-4043d146efba" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_cd28cc35-845e-4280-8c56-a306c59a4edd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_cd28cc35-845e-4280-8c56-a306c59a4edd" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_e08857ec-5ace-4f0d-8837-69e054a6a027" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_e08857ec-5ace-4f0d-8837-69e054a6a027" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_9140c4ab-59c2-43fe-855c-61a7185854ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_9140c4ab-59c2-43fe-855c-61a7185854ee" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_d1737650-62d7-4e47-a9eb-384bfd98bf8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_d1737650-62d7-4e47-a9eb-384bfd98bf8d" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_a8d77a0a-29ef-461c-996a-9d0784fd622b" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_a8d77a0a-29ef-461c-996a-9d0784fd622b" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_84b97c6c-6f21-491d-9a50-a7cb8985ca9b" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_84b97c6c-6f21-491d-9a50-a7cb8985ca9b" xlink:type="arc" order="11"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_3834bc44-4f83-460f-a5a2-7ccae2a2cac3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_3834bc44-4f83-460f-a5a2-7ccae2a2cac3" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_b2821e76-9e07-4516-b724-73b1c3ae8c1a" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:to="loc_cdxs_SeqWellMember_b2821e76-9e07-4516-b724-73b1c3ae8c1a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_813ce8ac-4dd2-4014-94b2-b0c050d37faa" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:to="loc_cdxs_MolecularAssembliesIncMember_813ce8ac-4dd2-4014-94b2-b0c050d37faa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAggregatedInvestmentsMember_05ab4c16-9c3a-43a8-bd76-147cfd5c35f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAggregatedInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:to="loc_us-gaap_OtherAggregatedInvestmentsMember_05ab4c16-9c3a-43a8-bd76-147cfd5c35f3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_4558395c-49ab-4069-bcd3-36ba4bda271b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_3834bc44-4f83-460f-a5a2-7ccae2a2cac3" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_4558395c-49ab-4069-bcd3-36ba4bda271b" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_3d6b5e7c-5369-4d1f-8dd2-93033120de6e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_3d6b5e7c-5369-4d1f-8dd2-93033120de6e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsMember_ccb3fbd0-cbff-4c53-8647-28daa6191956" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:to="loc_us-gaap_CashAndCashEquivalentsMember_ccb3fbd0-cbff-4c53-8647-28daa6191956" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_a84560c3-512b-471c-93f3-32f305086604" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_a84560c3-512b-471c-93f3-32f305086604" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_f32edbf7-26c7-4b55-9119-3c0988710280" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_f32edbf7-26c7-4b55-9119-3c0988710280" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_caf96839-31d6-465e-8199-21cfee4a5e2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_caf96839-31d6-465e-8199-21cfee4a5e2e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2ec27d7b-dc95-4b49-b847-e239e715f59a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2ec27d7b-dc95-4b49-b847-e239e715f59a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_2d48121c-93dc-4001-a88e-c0bbe1353262" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_MoneyMarketFundsMember_2d48121c-93dc-4001-a88e-c0bbe1353262" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommercialPaperMember_482eba73-6ba6-42de-abeb-a5f5516978d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommercialPaperMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_CommercialPaperMember_482eba73-6ba6-42de-abeb-a5f5516978d6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateDebtSecuritiesMember_b4f0a16a-d32b-4082-9934-ca21d209b43c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_CorporateDebtSecuritiesMember_b4f0a16a-d32b-4082-9934-ca21d209b43c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember_ca2861ec-b75e-4e52-926f-33f11d39f976" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember_ca2861ec-b75e-4e52-926f-33f11d39f976" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_85ad9275-101c-4bd7-a70d-686a2c3ddcc6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_85ad9275-101c-4bd7-a70d-686a2c3ddcc6" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_e42c1f15-730a-49c0-8236-3893fe1b581d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_Cash_e42c1f15-730a-49c0-8236-3893fe1b581d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_9b3e2d92-1a2b-4c51-9b0a-4155fb4f2033" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_9b3e2d92-1a2b-4c51-9b0a-4155fb4f2033" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ec04a3d6-cea4-481e-b365-216b926accf9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ec04a3d6-cea4-481e-b365-216b926accf9" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_b2d63d20-d4be-4534-82c0-8a5ce0e4953d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_b2d63d20-d4be-4534-82c0-8a5ce0e4953d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_e2e864e2-7de2-4b6c-83d7-a0f3afdc1bc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_e2e864e2-7de2-4b6c-83d7-a0f3afdc1bc7" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7e416ccb-55d4-4aff-957c-8954f7e972a4" xlink:href="cdxs-20241231.xsd#cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7e416ccb-55d4-4aff-957c-8954f7e972a4" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_f23ed087-21e1-468b-9f84-69cbac309729" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_f23ed087-21e1-468b-9f84-69cbac309729" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurementsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_471f7d57-745d-47be-a167-9d11187dc7c8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_471f7d57-745d-47be-a167-9d11187dc7c8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_302405ed-318c-44b4-af3a-98e4af197d20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_302405ed-318c-44b4-af3a-98e4af197d20" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebtMember_c9c9285a-bbe1-4859-b1e8-bc0d9796e897" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConvertibleDebtMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_302405ed-318c-44b4-af3a-98e4af197d20" xlink:to="loc_us-gaap_ConvertibleDebtMember_c9c9285a-bbe1-4859-b1e8-bc0d9796e897" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_9de5a324-dd26-4d28-ab7d-2e3ae7d0fa2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_9de5a324-dd26-4d28-ab7d-2e3ae7d0fa2b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_33a539a2-e353-4539-980c-be7e8e564f5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_33a539a2-e353-4539-980c-be7e8e564f5c" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_b43abba7-a680-47b7-9666-5ec28397642b_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_b43abba7-a680-47b7-9666-5ec28397642b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_bffb8e62-5bd1-4da8-a44f-a2d613ec1b3b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_bffb8e62-5bd1-4da8-a44f-a2d613ec1b3b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_bc9d9685-94ee-49ec-9ae3-ee64862e0553" xlink:href="cdxs-20241231.xsd#cdxs_SanCarlosMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_bffb8e62-5bd1-4da8-a44f-a2d613ec1b3b" xlink:to="loc_cdxs_SanCarlosMember_bc9d9685-94ee-49ec-9ae3-ee64862e0553" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_906f99d8-96c2-4702-99ad-3d5eebba0ae1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:to="loc_us-gaap_SegmentDomain_906f99d8-96c2-4702-99ad-3d5eebba0ae1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_3e5b7038-d8d5-48b1-ad00-41cfd98821ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:to="loc_us-gaap_SegmentDomain_3e5b7038-d8d5-48b1-ad00-41cfd98821ad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember_fdcbdba3-89eb-47eb-8719-d01d1ee3d927" xlink:href="cdxs-20241231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_3e5b7038-d8d5-48b1-ad00-41cfd98821ad" xlink:to="loc_cdxs_NovelBiotherapeuticsMember_fdcbdba3-89eb-47eb-8719-d01d1ee3d927" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseCurrent_aa1dd7f1-beb7-447d-a3ea-a043a669f2f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_PrepaidExpenseCurrent_aa1dd7f1-beb7-447d-a3ea-a043a669f2f6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsCurrent_53f8f740-7f45-470f-ae2b-40253ef81026" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_OtherAssetsCurrent_53f8f740-7f45-470f-ae2b-40253ef81026" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_864edcd7-34c2-4412-b457-f0b108e08bab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_AssetImpairmentCharges_864edcd7-34c2-4412-b457-f0b108e08bab" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_79c1fc1e-97f0-442a-94a1-70c4d556a22f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_79c1fc1e-97f0-442a-94a1-70c4d556a22f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_365fc266-0af9-400c-b84d-0d40ee7fa8cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_365fc266-0af9-400c-b84d-0d40ee7fa8cd" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_5d8b701a-8132-4c5d-ba8a-c772477183b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_Goodwill_5d8b701a-8132-4c5d-ba8a-c772477183b8" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsPropertyandEquipmentnetDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LaboratoryEquipmentMember_160bffc9-bc5f-434c-9bd7-01d5a9355d2e" xlink:href="cdxs-20241231.xsd#cdxs_LaboratoryEquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_cdxs_LaboratoryEquipmentMember_160bffc9-bc5f-434c-9bd7-01d5a9355d2e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_d31ce05d-8540-4ed4-b04f-b3f7eab153d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_d31ce05d-8540-4ed4-b04f-b3f7eab153d2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerEquipmentMember_d6afd94e-acbb-46f6-a1e0-c26355a2f192" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComputerEquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_us-gaap_ComputerEquipmentMember_d6afd94e-acbb-46f6-a1e0-c26355a2f192" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_4347b3d3-0cbb-4a52-b9ce-26d7277ada19" xlink:href="cdxs-20241231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_4347b3d3-0cbb-4a52-b9ce-26d7277ada19" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConstructionInProgressMember_66f158ae-4834-42a4-871f-4a3faa4f2337" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_us-gaap_ConstructionInProgressMember_66f158ae-4834-42a4-871f-4a3faa4f2337" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_c643a907-06b5-42e4-b5d1-253781959119_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_c643a907-06b5-42e4-b5d1-253781959119_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_e26ede90-bbda-427a-9a1c-ca274b297838" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_e26ede90-bbda-427a-9a1c-ca274b297838" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_abc12ab3-5df8-4da4-b917-de0e3c25cfb5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_abc12ab3-5df8-4da4-b917-de0e3c25cfb5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_b19ddbb1-cd69-4068-b7ab-ca9f586320a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_b19ddbb1-cd69-4068-b7ab-ca9f586320a7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_32b7cd41-35ad-46a1-8bc1-32658adb1eab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_32b7cd41-35ad-46a1-8bc1-32658adb1eab" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_e721ded7-f501-4920-8c5a-7e00831a7f32" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_e721ded7-f501-4920-8c5a-7e00831a7f32" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8b05de21-07ae-46d8-ad70-e58ca37690f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8b05de21-07ae-46d8-ad70-e58ca37690f7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_fdb73fee-4eb8-4230-bb94-046621e5c49a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_Depreciation_fdb73fee-4eb8-4230-bb94-046621e5c49a" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2f4ad6c1-8983-4254-b053-493b406d172c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2f4ad6c1-8983-4254-b053-493b406d172c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2024InducementPlanMember_e415dddd-0297-40b7-8b46-4b3cda303a7d" xlink:href="cdxs-20241231.xsd#cdxs_A2024InducementPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_A2024InducementPlanMember_e415dddd-0297-40b7-8b46-4b3cda303a7d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_1ddf4d1f-171a-4a9d-95a4-707accb33087" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_EmployeeStockMember_1ddf4d1f-171a-4a9d-95a4-707accb33087" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_a9deddeb-0dfe-4f25-a886-29f08cf9a502" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_EmployeeStockOptionMember_a9deddeb-0dfe-4f25-a886-29f08cf9a502" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_59d2c03f-4aab-42c2-8cdb-86b08804ce3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_59d2c03f-4aab-42c2-8cdb-86b08804ce3b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_ab2074c1-4a8b-4680-9f9e-f6dab1e98525" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_PerformanceSharesMember_ab2074c1-4a8b-4680-9f9e-f6dab1e98525" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember_226957ae-bf8f-4ab4-89ac-6588056c9a4e" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_PerformanceShareUnitsPSUsMember_226957ae-bf8f-4ab4-89ac-6588056c9a4e" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_7140ceff-4182-4922-ad70-998b06994410" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_7140ceff-4182-4922-ad70-998b06994410" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_068666ed-fae7-42ed-8013-fd00367da002" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_RestrictedStockMember_068666ed-fae7-42ed-8013-fd00367da002" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_e4b42392-43be-4c88-85c6-822421284943" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_PerformanceStockUnitsMember_e4b42392-43be-4c88-85c6-822421284943" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_f3af0afb-b46b-4370-8721-cc18bbaceae0_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:to="loc_us-gaap_PlanNameDomain_f3af0afb-b46b-4370-8721-cc18bbaceae0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:to="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022InducementPlanMember_da741cc1-8905-4f35-b0b4-511461849bd2" xlink:href="cdxs-20241231.xsd#cdxs_A2022InducementPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022InducementPlanMember_da741cc1-8905-4f35-b0b4-511461849bd2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019PlanMember_a3c16348-6677-43ee-8db5-467bc6302fda" xlink:href="cdxs-20241231.xsd#cdxs_A2019PlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2019PlanMember_a3c16348-6677-43ee-8db5-467bc6302fda" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019AmendedPlanMember_74ae9f75-d9a7-4088-a134-279b042875cc" xlink:href="cdxs-20241231.xsd#cdxs_A2019AmendedPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2019AmendedPlanMember_74ae9f75-d9a7-4088-a134-279b042875cc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019And2024InducementPlanMember_2a17d36f-74a5-4e1f-b728-180486028969" xlink:href="cdxs-20241231.xsd#cdxs_A2019And2024InducementPlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2019And2024InducementPlanMember_2a17d36f-74a5-4e1f-b728-180486028969" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUMember_aa33bbdd-a7b3-4130-b1f9-0b2b72e94a32" xlink:href="cdxs-20241231.xsd#cdxs_A2022PSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022PSUMember_aa33bbdd-a7b3-4130-b1f9-0b2b72e94a32" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PBOMember_f84890be-849a-4d8c-a348-56a5cd0646a7" xlink:href="cdxs-20241231.xsd#cdxs_A2022PBOMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022PBOMember_f84890be-849a-4d8c-a348-56a5cd0646a7" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUAnd2022PBOMember_c47f704d-8016-4a4b-97aa-52249edee118" xlink:href="cdxs-20241231.xsd#cdxs_A2022PSUAnd2022PBOMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022PSUAnd2022PBOMember_c47f704d-8016-4a4b-97aa-52249edee118" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain_b0caa07b-d8bf-40bc-97b3-608cb3908e51_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:to="loc_us-gaap_VestingDomain_b0caa07b-d8bf-40bc-97b3-608cb3908e51_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:to="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_87ae40d6-6d61-4439-be91-f30570de9c34" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAwardTrancheOneMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_87ae40d6-6d61-4439-be91-f30570de9c34" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_ba6233bd-958b-4993-a6cd-99466a7abea2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAwardTrancheTwoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_ba6233bd-958b-4993-a6cd-99466a7abea2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:to="loc_us-gaap_GranteeStatusDomain_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_be0887c0-d21b-4fc5-b449-5ffe94649242" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:to="loc_us-gaap_GranteeStatusDomain_be0887c0-d21b-4fc5-b449-5ffe94649242" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ffe2d54e-d3f7-427e-a08e-b77604a507c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GranteeStatusDomain_be0887c0-d21b-4fc5-b449-5ffe94649242" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ffe2d54e-d3f7-427e-a08e-b77604a507c4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_6453965d-3d64-4704-a759-1f9a4c9b3a17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_6453965d-3d64-4704-a759-1f9a4c9b3a17" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_4958099c-692c-4ccf-86c9-4ff14ada6b87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_4958099c-692c-4ccf-86c9-4ff14ada6b87" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_8aa1fe71-8db8-47c0-90ee-b8690670e97b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_8aa1fe71-8db8-47c0-90ee-b8690670e97b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_6d897d41-6b6d-4164-9f73-6af712e54482" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_6d897d41-6b6d-4164-9f73-6af712e54482" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2347908f-eda3-4256-ab41-6cdbe129b74f" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2347908f-eda3-4256-ab41-6cdbe129b74f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_13d0a988-8cd4-4bd7-9dbf-dc90bc96730d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_13d0a988-8cd4-4bd7-9dbf-dc90bc96730d" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_7e827899-1dd2-4e3d-867d-f60b5707ebee" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_7e827899-1dd2-4e3d-867d-f60b5707ebee" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_5ef2bf61-0896-45c7-acf4-c7d326f4097d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_5ef2bf61-0896-45c7-acf4-c7d326f4097d" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_45525075-ca26-4bc3-ba41-6cb8c8396025" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_45525075-ca26-4bc3-ba41-6cb8c8396025" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_10aa78cf-d653-4527-9f6f-0573507b4c0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_10aa78cf-d653-4527-9f6f-0573507b4c0d" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_4100640c-243f-43a7-a920-25f64b1cfb95" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_4100640c-243f-43a7-a920-25f64b1cfb95" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_dffb0321-2e57-4a0b-baf8-ad70bf335363" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_dffb0321-2e57-4a0b-baf8-ad70bf335363" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_2d406242-b9b8-43f0-b5ab-e7603751256d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_2d406242-b9b8-43f0-b5ab-e7603751256d" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_b55c1fb7-9c39-45b3-9e94-c3cffbf7a0a6" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_b55c1fb7-9c39-45b3-9e94-c3cffbf7a0a6" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d0bf8591-228a-45f9-bebe-45c666523d75" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d0bf8591-228a-45f9-bebe-45c666523d75" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_352fa5ac-efb6-48bd-94f3-c6f610d5006a" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_352fa5ac-efb6-48bd-94f3-c6f610d5006a" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_e4382b93-9e16-4266-8154-6cd19748fa4a" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_e4382b93-9e16-4266-8154-6cd19748fa4a" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_9c94a4ce-bae9-4ac2-8b4b-f18f4f4c1325" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_9c94a4ce-bae9-4ac2-8b4b-f18f4f4c1325" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_d91b6961-eaa7-4fdd-9bf9-42825a3fb0a5" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_d91b6961-eaa7-4fdd-9bf9-42825a3fb0a5" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfOtherFormerExecutive_d0f43297-7684-4722-b693-3d71ecb7b618" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfOtherFormerExecutive"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_NumberOfOtherFormerExecutive_d0f43297-7684-4722-b693-3d71ecb7b618" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfFormerExecutives_19b943e2-249c-47fb-897a-f06af90706b0" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfFormerExecutives"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_NumberOfFormerExecutives_19b943e2-249c-47fb-897a-f06af90706b0" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_f5b88a05-25d7-4ac9-a219-1856a11eeef9" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_f5b88a05-25d7-4ac9-a219-1856a11eeef9" xlink:type="arc" order="21"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e8f223c4-f146-4587-be7f-3e3b2879f201" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e8f223c4-f146-4587-be7f-3e3b2879f201" xlink:type="arc" order="22"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_633ec231-6226-41f0-8c2c-a68a5067f966" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_633ec231-6226-41f0-8c2c-a68a5067f966" xlink:type="arc" order="23"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d4587ee-44dc-49f7-b8c7-3d9c7f32c9e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d4587ee-44dc-49f7-b8c7-3d9c7f32c9e1" xlink:type="arc" order="24"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_dd622a8b-5558-41af-a0ac-14764b07b319" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_dd622a8b-5558-41af-a0ac-14764b07b319" xlink:type="arc" order="25"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0d0a7bd1-d8f1-47b5-91d1-a32cf6b30ccf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0d0a7bd1-d8f1-47b5-91d1-a32cf6b30ccf" xlink:type="arc" order="26"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_aadd68b7-ef3f-4bf9-9f7a-b9bcb870a5ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_aadd68b7-ef3f-4bf9-9f7a-b9bcb870a5ac" xlink:type="arc" order="27"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_bfec5795-b633-4554-88f0-9efaf788e4e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_bfec5795-b633-4554-88f0-9efaf788e4e3" xlink:type="arc" order="28"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationStockBasedCompensationExpenseDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_de61e745-b350-43be-b82c-6eed997b56e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_de61e745-b350-43be-b82c-6eed997b56e9" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_6aee5229-bb25-4f8b-ad33-b644a8e0eca2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_6aee5229-bb25-4f8b-ad33-b644a8e0eca2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfSalesMember_c59c2a1b-d438-495b-b5bc-6d2673e27ae7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfSalesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:to="loc_us-gaap_CostOfSalesMember_c59c2a1b-d438-495b-b5bc-6d2673e27ae7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6529d202-23e1-4bf3-991c-b57b3faad836" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6529d202-23e1-4bf3-991c-b57b3faad836" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_d7892019-0a35-4c6a-8ba3-dc0397fce11f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_d7892019-0a35-4c6a-8ba3-dc0397fce11f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:to="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2c1ff69b-732e-4301-924d-666b98421806_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2c1ff69b-732e-4301-924d-666b98421806_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_575f9936-676a-49a4-831c-5352b48ed18f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_us-gaap_EmployeeStockOptionMember_575f9936-676a-49a4-831c-5352b48ed18f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember_280740e7-db7f-466b-85f9-489431d3ed0c" xlink:href="cdxs-20241231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_cdxs_RSUsAndRSAsMember_280740e7-db7f-466b-85f9-489431d3ed0c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_89937058-931b-42ec-9c0e-1250e8fadb5a" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_cdxs_PerformanceStockUnitsMember_89937058-931b-42ec-9c0e-1250e8fadb5a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_25842da3-742a-4c4c-890a-760e5c8d38d5" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_25842da3-742a-4c4c-890a-760e5c8d38d5" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_320fa6e0-f03f-4043-9c0b-818249e5d70d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_us-gaap_EmployeeStockMember_320fa6e0-f03f-4043-9c0b-818249e5d70d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_20457861-76d5-40b1-a0af-f81cea7c83f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_de61e745-b350-43be-b82c-6eed997b56e9" xlink:to="loc_us-gaap_ShareBasedCompensation_20457861-76d5-40b1-a0af-f81cea7c83f1" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationAssumptionsUsedDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:to="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_a7d37f21-b9cd-4962-a4c7-fc3640d53d21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_us-gaap_EmployeeStockOptionMember_a7d37f21-b9cd-4962-a4c7-fc3640d53d21" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_de70cbdf-55ab-4052-a9c0-d65f4cb70678" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_de70cbdf-55ab-4052-a9c0-d65f4cb70678" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_fbe56d7c-0ba5-4163-b2af-22396995f9ff" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_fbe56d7c-0ba5-4163-b2af-22396995f9ff" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_a962e0fa-e61a-4f07-9d92-60875b7d77cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_us-gaap_EmployeeStockMember_a962e0fa-e61a-4f07-9d92-60875b7d77cc" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:to="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_07855704-13b6-44a5-b521-31978ccbb688_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:to="loc_us-gaap_GranteeStatusDomain_07855704-13b6-44a5-b521-31978ccbb688_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_dd85d348-5f4d-464a-afa2-c2f7cfedbe2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:to="loc_us-gaap_GranteeStatusDomain_dd85d348-5f4d-464a-afa2-c2f7cfedbe2c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_15afb656-0398-4d72-b75e-da1d8dcefaf8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GranteeStatusDomain_dd85d348-5f4d-464a-afa2-c2f7cfedbe2c" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_15afb656-0398-4d72-b75e-da1d8dcefaf8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_4ceac51d-0405-4030-8d2b-191b83cea837" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_4ceac51d-0405-4030-8d2b-191b83cea837" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_143671f9-7a1b-4ed1-8a85-6eb3ef1e65bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_143671f9-7a1b-4ed1-8a85-6eb3ef1e65bc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ad8e89fb-2ac4-48e6-a140-37b8db2f40d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ad8e89fb-2ac4-48e6-a140-37b8db2f40d1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_99fc6448-e614-4b0c-8b89-6b53f01da2e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_99fc6448-e614-4b0c-8b89-6b53f01da2e6" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationAwardActivityDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:to="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_02dd033b-afde-4949-867f-599ce05a2545" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_us-gaap_RestrictedStockMember_02dd033b-afde-4949-867f-599ce05a2545" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_d1aa76c2-9f1c-4237-ba1b-735418a1c637" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_d1aa76c2-9f1c-4237-ba1b-735418a1c637" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_5a599f69-76cc-4bcb-aa5a-5696c8813b0f" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_cdxs_PerformanceStockUnitsMember_5a599f69-76cc-4bcb-aa5a-5696c8813b0f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_a1ae3fb6-e7e0-4de1-8c42-2a736efa9aa6" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_a1ae3fb6-e7e0-4de1-8c42-2a736efa9aa6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_fc457d4a-7fae-4e94-a42e-89fac0547f64" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_fc457d4a-7fae-4e94-a42e-89fac0547f64" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_114c6dcb-2192-403c-a40b-1ebb2e192b9b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_114c6dcb-2192-403c-a40b-1ebb2e192b9b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_3d20eda9-52ef-49df-aa26-f91eb1947a81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_3d20eda9-52ef-49df-aa26-f91eb1947a81" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4d0bd53e-cb4b-4e45-9e45-f326620ff62d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4d0bd53e-cb4b-4e45-9e45-f326620ff62d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_b91fc56c-4d64-48cd-82f7-440879f0083f" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_b91fc56c-4d64-48cd-82f7-440879f0083f" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_d46fb7d9-8c99-4793-ab13-2730165e50e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d03cb89b-2f00-4d12-80f2-71681f100c45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d03cb89b-2f00-4d12-80f2-71681f100c45" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d1e9fcb-e355-4f70-9aea-159535f76896" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d1e9fcb-e355-4f70-9aea-159535f76896" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_6d8c25e5-de11-491b-880e-de26b4f30c17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_6d8c25e5-de11-491b-880e-de26b4f30c17" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_79fd49ab-aafb-48a5-bae6-05b716ca53f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_79fd49ab-aafb-48a5-bae6-05b716ca53f0" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_84522c2b-a70e-4eb4-a4b6-c7ecd9fc7956" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_84522c2b-a70e-4eb4-a4b6-c7ecd9fc7956" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_c5a4c466-686c-4e8f-b6bb-9d513fc1d569" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_6d3b3427-412e-425c-a8f1-47b7c406da5a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_6d3b3427-412e-425c-a8f1-47b7c406da5a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_f27a3382-17a3-4007-bc52-b6c7ca9ef80d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_f27a3382-17a3-4007-bc52-b6c7ca9ef80d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_0713db6e-138a-4820-9af4-b2bf9b50b4de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_0713db6e-138a-4820-9af4-b2bf9b50b4de" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_53102599-3ee2-49d7-b076-94dd620ca704" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_53102599-3ee2-49d7-b076-94dd620ca704" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_c81cfd75-3e02-41ab-911f-30fb4b69420c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_c81cfd75-3e02-41ab-911f-30fb4b69420c" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_5f1b81c1-7d2c-485f-8861-9d797527a043" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_5f1b81c1-7d2c-485f-8861-9d797527a043" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_ac53fb93-8f30-4965-940e-830ea2538204" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_ac53fb93-8f30-4965-940e-830ea2538204" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_8cb9eb35-6720-444b-86f4-8b8f87976c15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_8cb9eb35-6720-444b-86f4-8b8f87976c15" xlink:type="arc" order="8"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CapitalStockDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CapitalStockDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CapitalStockDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_b1cde81d-fdae-460e-a982-dedc9d6ce385_default" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:to="loc_dei_EntityDomain_b1cde81d-fdae-460e-a982-dedc9d6ce385_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:to="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PiperSandlerCoMember_e06263e2-bc95-4def-aa3e-eb0ae2ca10b2" xlink:href="cdxs-20241231.xsd#cdxs_PiperSandlerCoMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:to="loc_cdxs_PiperSandlerCoMember_e06263e2-bc95-4def-aa3e-eb0ae2ca10b2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CantorMember_aab19d2d-eaa9-4ac7-9654-fc0331d898f0" xlink:href="cdxs-20241231.xsd#cdxs_CantorMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:to="loc_cdxs_CantorMember_aab19d2d-eaa9-4ac7-9654-fc0331d898f0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_89da3a8f-4a65-4479-84c1-cd26d8a4e954_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:to="loc_srt_RangeMember_89da3a8f-4a65-4479-84c1-cd26d8a4e954_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_34dbe257-6ee6-4941-818e-10c4bfa7aa7d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:to="loc_srt_RangeMember_34dbe257-6ee6-4941-818e-10c4bfa7aa7d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_8414fc9e-4968-4652-beab-3b99bb51b491" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_34dbe257-6ee6-4941-818e-10c4bfa7aa7d" xlink:to="loc_srt_MaximumMember_8414fc9e-4968-4652-beab-3b99bb51b491" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockNameOfTransactionDomain_7590f73e-1ced-479c-afa8-1bd0cb466833_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:to="loc_us-gaap_SaleOfStockNameOfTransactionDomain_7590f73e-1ced-479c-afa8-1bd0cb466833_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockNameOfTransactionDomain_39b0b470-cf1b-4ec9-93e8-dcaf01feb855" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:to="loc_us-gaap_SaleOfStockNameOfTransactionDomain_39b0b470-cf1b-4ec9-93e8-dcaf01feb855" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CantorSalesAgreementMember_68bd68b6-56af-451b-a1bd-b4f57ac64ecd" xlink:href="cdxs-20241231.xsd#cdxs_CantorSalesAgreementMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SaleOfStockNameOfTransactionDomain_39b0b470-cf1b-4ec9-93e8-dcaf01feb855" xlink:to="loc_cdxs_CantorSalesAgreementMember_68bd68b6-56af-451b-a1bd-b4f57ac64ecd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_e18c03cc-3a7e-44ec-bf04-b222886a7609" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_e18c03cc-3a7e-44ec-bf04-b222886a7609" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockPeriod_e25a65c1-78a1-45ce-bcdd-90c862e8cfd9" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockPeriod_e25a65c1-78a1-45ce-bcdd-90c862e8cfd9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockValueOfSharesForIssuance_75d09f4d-f67c-4c87-96c5-1a8c9d856709" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockValueOfSharesForIssuance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockValueOfSharesForIssuance_75d09f4d-f67c-4c87-96c5-1a8c9d856709" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_21350ba4-85ac-427f-804a-afcba10b705c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_21350ba4-85ac-427f-804a-afcba10b705c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_8ea1ac57-246b-46a3-a932-5eb556326ad4" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockConsiderationReceivedOnTransactionGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_8ea1ac57-246b-46a3-a932-5eb556326ad4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_d042c778-97c4-4949-983f-5d71067613e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockConsiderationReceivedOnTransaction"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_d042c778-97c4-4949-983f-5d71067613e5" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts_1b8b3809-a142-44e4-9c8c-b38ff1cafd64" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_PaymentsOfStockIssuanceCosts_1b8b3809-a142-44e4-9c8c-b38ff1cafd64" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionFeePercent_4324ec87-2f39-438a-b149-b332302c201e" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockCommissionFeePercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockCommissionFeePercent_4324ec87-2f39-438a-b149-b332302c201e" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_5ed729a0-7f88-4dd8-b015-314a9054f740" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:to="loc_us-gaap_DomesticCountryMember_5ed729a0-7f88-4dd8-b015-314a9054f740" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember_31303264-fda8-494e-88d7-9be62e245e65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:to="loc_us-gaap_StateAndLocalJurisdictionMember_31303264-fda8-494e-88d7-9be62e245e65" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards_deae4293-6fb1-4ef4-ae03-fd1d28fb58a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_us-gaap_OperatingLossCarryforwards_deae4293-6fb1-4ef4-ae03-fd1d28fb58a0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_4b25a50d-7065-4afb-819c-36e793ac2056" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_4b25a50d-7065-4afb-819c-36e793ac2056" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAmount_50871978-52c5-4545-acc2-8ac6e72db874" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_us-gaap_TaxCreditCarryforwardAmount_50871978-52c5-4545-acc2-8ac6e72db874" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_d25ade0a-cd66-4534-bab8-e45615ca0eb7_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_d25ade0a-cd66-4534-bab8-e45615ca0eb7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A200220PenobscotMember_37a2f394-abc8-4395-953a-592e23b092d9" xlink:href="cdxs-20241231.xsd#cdxs_A200220PenobscotMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_A200220PenobscotMember_37a2f394-abc8-4395-953a-592e23b092d9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A400PenoscotMember_256f8931-ff8c-43a8-9431-17ebedf6aa91" xlink:href="cdxs-20241231.xsd#cdxs_A400PenoscotMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_A400PenoscotMember_256f8931-ff8c-43a8-9431-17ebedf6aa91" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A501ChesapeakeMember_e3cd318a-27c8-4405-ae21-03611a4dad22" xlink:href="cdxs-20241231.xsd#cdxs_A501ChesapeakeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_A501ChesapeakeMember_e3cd318a-27c8-4405-ae21-03611a4dad22" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_ae73085c-de31-43d7-85d4-eb0e0e4e19e6" xlink:href="cdxs-20241231.xsd#cdxs_SanCarlosMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_SanCarlosMember_ae73085c-de31-43d7-85d4-eb0e0e4e19e6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermDomain_29a6bd4b-6bdb-45f7-9459-ffef4570185b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:to="loc_us-gaap_LeaseContractualTermDomain_29a6bd4b-6bdb-45f7-9459-ffef4570185b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:to="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_0774144c-689f-469a-9783-0aff937ebc16" xlink:href="cdxs-20241231.xsd#cdxs_PenobscotSpaceFiveYearRenewalOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:to="loc_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_0774144c-689f-469a-9783-0aff937ebc16" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_0474da98-293c-42af-8b9c-6aae885cfd1b" xlink:href="cdxs-20241231.xsd#cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:to="loc_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_0474da98-293c-42af-8b9c-6aae885cfd1b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_411f5f66-841a-4c3d-a49d-291f07be1dfb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_411f5f66-841a-4c3d-a49d-291f07be1dfb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_66bf4f2d-937c-4339-abab-c42e5b5100be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_66bf4f2d-937c-4339-abab-c42e5b5100be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_a0f19736-deb5-4c7a-b997-2e5a681ce9e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_66bf4f2d-937c-4339-abab-c42e5b5100be" xlink:to="loc_us-gaap_LandMember_a0f19736-deb5-4c7a-b997-2e5a681ce9e5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_69a8fb2e-e62c-4c28-b0e9-ee5f98001318_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_69a8fb2e-e62c-4c28-b0e9-ee5f98001318_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3bd344d7-bf01-4e06-ac6d-456e1af9c28b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3bd344d7-bf01-4e06-ac6d-456e1af9c28b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DemandDepositsMember_8f6f73bf-9504-43e6-9372-2b50cccddfd3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DemandDepositsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3bd344d7-bf01-4e06-ac6d-456e1af9c28b" xlink:to="loc_us-gaap_DemandDepositsMember_8f6f73bf-9504-43e6-9372-2b50cccddfd3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:to="loc_us-gaap_CreditFacilityDomain_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:to="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_fdb0cd7c-9dcd-440a-b9fb-cc25b79e248c" xlink:href="cdxs-20241231.xsd#cdxs_TermLoanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:to="loc_cdxs_TermLoanMember_fdb0cd7c-9dcd-440a-b9fb-cc25b79e248c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevolvingCreditFacilityMember_7b03443a-9afe-4fe5-a625-f0b49cf8bee8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:to="loc_us-gaap_RevolvingCreditFacilityMember_7b03443a-9afe-4fe5-a625-f0b49cf8bee8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain_88108b9b-776c-48dd-adc2-4dc9526ca4af_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:to="loc_us-gaap_LossContingencyNatureDomain_88108b9b-776c-48dd-adc2-4dc9526ca4af_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain_1ca3582d-583e-460d-9b01-4b2e0bcbe68b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:to="loc_us-gaap_LossContingencyNatureDomain_1ca3582d-583e-460d-9b01-4b2e0bcbe68b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndemnificationGuaranteeMember_7aa791b9-2bfd-40df-aec0-43cea8afc351" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndemnificationGuaranteeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LossContingencyNatureDomain_1ca3582d-583e-460d-9b01-4b2e0bcbe68b" xlink:to="loc_us-gaap_IndemnificationGuaranteeMember_7aa791b9-2bfd-40df-aec0-43cea8afc351" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty_cd6f8432-d31b-42fe-9dd2-9f3c17dcfe1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_AreaOfRealEstateProperty_cd6f8432-d31b-42fe-9dd2-9f3c17dcfe1c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_48d2800d-f719-4ebb-9bf0-69537b68052c" xlink:href="cdxs-20241231.xsd#cdxs_LesseeOperatingLeaseNumberOfRenewalOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_48d2800d-f719-4ebb-9bf0-69537b68052c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_c60ee166-d60b-4f8f-bf53-dd8c6708bf52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_c60ee166-d60b-4f8f-bf53-dd8c6708bf52" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForTenantImprovements_ec08ea8c-f3c0-4d0a-b001-4e6033547e3d" xlink:href="cdxs-20241231.xsd#cdxs_AllowanceForTenantImprovements"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_AllowanceForTenantImprovements_ec08ea8c-f3c0-4d0a-b001-4e6033547e3d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_c3d10c31-4d6b-4004-876b-27a4c9caf61d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_OperatingLeaseLiability_c3d10c31-4d6b-4004-876b-27a4c9caf61d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_f7adcd0a-3c6b-4433-a10f-eb6d1a6511c3" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_f7adcd0a-3c6b-4433-a10f-eb6d1a6511c3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_d9416467-0791-4401-8907-45c31ded03ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_AssetImpairmentCharges_d9416467-0791-4401-8907-45c31ded03ad" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_99d50293-90ff-4d8a-a19d-2f6dc2a17867" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_99d50293-90ff-4d8a-a19d-2f6dc2a17867" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_3636c4d8-3aa4-41b7-a2a9-9ccde6f6cbfd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_3636c4d8-3aa4-41b7-a2a9-9ccde6f6cbfd" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_a4b573c3-4062-447d-936a-22f7cb8eadaa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndInvestmentsNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_a4b573c3-4062-447d-936a-22f7cb8eadaa" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetRetirementObligation_a99688a5-d116-4fec-8a7d-6af2e49889dd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetRetirementObligation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_AssetRetirementObligation_a99688a5-d116-4fec-8a7d-6af2e49889dd" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_2e7c2159-1b00-4591-9bc9-19887521870d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_2e7c2159-1b00-4591-9bc9-19887521870d" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_ff852f4f-90f6-4426-957f-7dee78e34ba7" xlink:href="cdxs-20241231.xsd#cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_ff852f4f-90f6-4426-957f-7dee78e34ba7" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_447f52d1-d7eb-4327-9f20-27bfcee4a677" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_447f52d1-d7eb-4327-9f20-27bfcee4a677" xlink:type="arc" order="13"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtNarrativeDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/DebtNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_2c35fdf1-a0a4-44ed-b34c-d6b010782a48_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_2c35fdf1-a0a4-44ed-b34c-d6b010782a48_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_0ce071a9-79d2-491d-9ce6-c1af4b364eb9" xlink:href="cdxs-20241231.xsd#cdxs_TermLoanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:to="loc_cdxs_TermLoanMember_0ce071a9-79d2-491d-9ce6-c1af4b364eb9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:to="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanFirstTrancheMember_077f5476-535e-47d8-b2e7-eb8785f6463b" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanFirstTrancheMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:to="loc_cdxs_InnovatusLoanFirstTrancheMember_077f5476-535e-47d8-b2e7-eb8785f6463b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanSecondTrancheMember_ee1b101a-73ad-4d7c-8b51-c753bd81f791" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanSecondTrancheMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:to="loc_cdxs_InnovatusLoanSecondTrancheMember_ee1b101a-73ad-4d7c-8b51-c753bd81f791" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeDomain_119f0155-548b-459c-a29e-7c99ddfb0fb2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:to="loc_us-gaap_LongtermDebtTypeDomain_119f0155-548b-459c-a29e-7c99ddfb0fb2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeDomain_f6d69811-58ca-4c13-a7e0-bd4ee43fbf3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:to="loc_us-gaap_LongtermDebtTypeDomain_f6d69811-58ca-4c13-a7e0-bd4ee43fbf3a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecuredDebtMember_2bfb78f5-2ed4-4d87-a718-d9a04f66c648" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredDebtMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LongtermDebtTypeDomain_f6d69811-58ca-4c13-a7e0-bd4ee43fbf3a" xlink:to="loc_us-gaap_SecuredDebtMember_2bfb78f5-2ed4-4d87-a718-d9a04f66c648" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_6667a597-99d2-4c80-88f6-e106bbd529b1_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:to="loc_srt_RangeMember_6667a597-99d2-4c80-88f6-e106bbd529b1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:to="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_7cf413cb-10b2-4834-b3aa-e7f5026657e4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:to="loc_srt_MaximumMember_7cf413cb-10b2-4834-b3aa-e7f5026657e4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a63b19ad-87b6-4adc-9b7c-82e9f9c1db20" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:to="loc_srt_MinimumMember_a63b19ad-87b6-4adc-9b7c-82e9f9c1db20" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightDomain_2803d4ac-f8c1-4238-84bc-2284a87fd5ce_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:to="loc_us-gaap_ClassOfWarrantOrRightDomain_2803d4ac-f8c1-4238-84bc-2284a87fd5ce_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightDomain_8b4b3da8-4029-4d7f-bdce-d5862a0ec1e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:to="loc_us-gaap_ClassOfWarrantOrRightDomain_8b4b3da8-4029-4d7f-bdce-d5862a0ec1e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanWarrantsMember_6e274aed-0bb1-4bad-8d91-ba88d7620d56" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanWarrantsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfWarrantOrRightDomain_8b4b3da8-4029-4d7f-bdce-d5862a0ec1e0" xlink:to="loc_cdxs_InnovatusLoanWarrantsMember_6e274aed-0bb1-4bad-8d91-ba88d7620d56" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTerm_041d8d55-dca7-4a5c-aae1-45549eb28a0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentTerm_041d8d55-dca7-4a5c-aae1-45549eb28a0a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount_dc74e1aa-47ef-436d-b67f-029239c4e05f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentFaceAmount_dc74e1aa-47ef-436d-b67f-029239c4e05f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentNumberOfTranches_58242c58-1601-4716-8c9d-212e51681d67" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentNumberOfTranches"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentNumberOfTranches_58242c58-1601-4716-8c9d-212e51681d67" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentFacilityFeePercent_6d53a8be-1153-44a8-98f5-8ea66f087002" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentFacilityFeePercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentFacilityFeePercent_6d53a8be-1153-44a8-98f5-8ea66f087002" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_1df9987f-65ad-44df-b09b-7b35c7aa658d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_1df9987f-65ad-44df-b09b-7b35c7aa658d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration_db073a73-d650-4a20-bc07-09043e0adcf6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration_db073a73-d650-4a20-bc07-09043e0adcf6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_7ba6e4fc-7e80-4bd4-9c2f-4c1cffd125c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_7ba6e4fc-7e80-4bd4-9c2f-4c1cffd125c2" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPaidInKind_ecda482c-5e06-4bc7-a4c0-0dcaebafcc54" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentInterestPaidInKind"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentInterestPaidInKind_ecda482c-5e06-4bc7-a4c0-0dcaebafcc54" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPayableTerm_8842273a-a29c-437f-bb3a-9b3652c20249" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentInterestPayableTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentInterestPayableTerm_8842273a-a29c-437f-bb3a-9b3652c20249" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EarlyRepaymentFeePercentage_56ee43af-a16f-42c5-9208-86d0760d0a8f" xlink:href="cdxs-20241231.xsd#cdxs_EarlyRepaymentFeePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_EarlyRepaymentFeePercentage_56ee43af-a16f-42c5-9208-86d0760d0a8f" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentExitFeePercent_5ed3162f-7ede-4bad-9e2b-005921f4c6a0" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentExitFeePercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentExitFeePercent_5ed3162f-7ede-4bad-9e2b-005921f4c6a0" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount_f7901eaa-2f8e-4ec1-b135-8545779f6551" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentUnamortizedDiscount_f7901eaa-2f8e-4ec1-b135-8545779f6551" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense_0e05c720-5669-43dd-abaf-18ebd784f3b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_UnamortizedDebtIssuanceExpense_0e05c720-5669-43dd-abaf-18ebd784f3b4" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseDebt_9eebd8de-b62a-479a-8e02-c8d9a6731f52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseDebt"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_InterestExpenseDebt_9eebd8de-b62a-479a-8e02-c8d9a6731f52" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateEffectivePercentage_3db1a1b3-5481-42dc-bb81-e154e9d32b14" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentInterestRateEffectivePercentage_3db1a1b3-5481-42dc-bb81-e154e9d32b14" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_32305b33-51ba-4698-bd6d-91693a60732f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_32305b33-51ba-4698-bd6d-91693a60732f" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_6085fd10-27ca-42bb-9a6f-3b442e8d09f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_6085fd10-27ca-42bb-9a6f-3b442e8d09f7" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ClassOfWarrantOrRightFairValue_a60541b9-6acf-4f66-9d0c-e5d62d3341c2" xlink:href="cdxs-20241231.xsd#cdxs_ClassOfWarrantOrRightFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_ClassOfWarrantOrRightFairValue_a60541b9-6acf-4f66-9d0c-e5d62d3341c2" xlink:type="arc" order="17"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_e47b459c-4117-4e18-adab-0e6efc24eb68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_e47b459c-4117-4e18-adab-0e6efc24eb68" xlink:to="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_7448109b-7abf-4115-80de-3d1af58c8cdd_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:to="loc_srt_NameOfMajorCustomerDomain_7448109b-7abf-4115-80de-3d1af58c8cdd_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:to="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerAMember_d61b2ee2-387d-4de4-b9dc-2b0322b29815" xlink:href="cdxs-20241231.xsd#cdxs_CustomerAMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerAMember_d61b2ee2-387d-4de4-b9dc-2b0322b29815" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerBMember_014a298c-a4c7-4b9d-abe5-95135e24d55f" xlink:href="cdxs-20241231.xsd#cdxs_CustomerBMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerBMember_014a298c-a4c7-4b9d-abe5-95135e24d55f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerCMember_5e80fb21-979a-4ce1-832e-c6eb3291991a" xlink:href="cdxs-20241231.xsd#cdxs_CustomerCMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerCMember_5e80fb21-979a-4ce1-832e-c6eb3291991a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerDMember_d3be6f53-7b70-49aa-8aa4-759e23d3330d" xlink:href="cdxs-20241231.xsd#cdxs_CustomerDMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerDMember_d3be6f53-7b70-49aa-8aa4-759e23d3330d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerEMember_5467f1ca-cc7a-47a9-be85-a57950c476c7" xlink:href="cdxs-20241231.xsd#cdxs_CustomerEMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerEMember_5467f1ca-cc7a-47a9-be85-a57950c476c7" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerFMember_6d4e16c8-5656-4798-b518-d2e21c7d45a2" xlink:href="cdxs-20241231.xsd#cdxs_CustomerFMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerFMember_6d4e16c8-5656-4798-b518-d2e21c7d45a2" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerGMember_d5ca798a-6e68-46d4-94b1-18cefe0b8fd3" xlink:href="cdxs-20241231.xsd#cdxs_CustomerGMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerGMember_d5ca798a-6e68-46d4-94b1-18cefe0b8fd3" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerHMember_39250abf-bec8-4c07-b975-1e7e5a3b3e4c" xlink:href="cdxs-20241231.xsd#cdxs_CustomerHMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerHMember_39250abf-bec8-4c07-b975-1e7e5a3b3e4c" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerIMember_5e348937-cd76-4315-9326-664f5c67c7d6" xlink:href="cdxs-20241231.xsd#cdxs_CustomerIMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerIMember_5e348937-cd76-4315-9326-664f5c67c7d6" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_92ed2439-7b59-4bab-8141-a33f823f1e43_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_92ed2439-7b59-4bab-8141-a33f823f1e43_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueProductLineMember_6e2a5578-f5bc-4556-b86f-910ff0f1eb76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueProductLineMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:to="loc_us-gaap_SalesRevenueProductLineMember_6e2a5578-f5bc-4556-b86f-910ff0f1eb76" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_1110bf64-4cf2-4cc9-9ec7-2dbc5556df96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:to="loc_us-gaap_AccountsReceivableMember_1110bf64-4cf2-4cc9-9ec7-2dbc5556df96" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_49eddaf3-b090-4b9b-9c22-7b9f21043400_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_49eddaf3-b090-4b9b-9c22-7b9f21043400_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_5f60f716-3d1f-4994-a01c-1df2913b34f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_5f60f716-3d1f-4994-a01c-1df2913b34f8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_0b1dc760-f224-479f-9b6b-3a4dee816121" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_5f60f716-3d1f-4994-a01c-1df2913b34f8" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_0b1dc760-f224-479f-9b6b-3a4dee816121" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_e4e20a3a-2f81-4f91-b73e-e22e23c80a21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_e47b459c-4117-4e18-adab-0e6efc24eb68" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_e4e20a3a-2f81-4f91-b73e-e22e23c80a21" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformationRevenuesDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_23fa9261-763b-4d39-b1f5-9e2142960eb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_23fa9261-763b-4d39-b1f5-9e2142960eb3" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:to="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_73370844-0b38-400a-99c9-6fe6385eb173_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:to="loc_srt_SegmentGeographicalDomain_73370844-0b38-400a-99c9-6fe6385eb173_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:to="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_e4de8b3e-dd52-48d4-b1df-307a724c79b5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_srt_AmericasMember_e4de8b3e-dd52-48d4-b1df-307a724c79b5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_32e771f6-a187-4808-8a83-c1c891bb4783" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EMEAMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_us-gaap_EMEAMember_32e771f6-a187-4808-8a83-c1c891bb4783" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_602865d8-81df-4168-91f8-46f4147a5c30" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AsiaPacificMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_srt_AsiaPacificMember_602865d8-81df-4168-91f8-46f4147a5c30" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_f52e46d1-e347-4578-b93b-2b47ecafcf86" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_US_f52e46d1-e347-4578-b93b-2b47ecafcf86" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IE_cd82d4a7-0246-40d3-b1f3-7bf59b70df6e" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_IE"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_IE_cd82d4a7-0246-40d3-b1f3-7bf59b70df6e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CH_49857ca2-111f-4291-9d7d-3e41a7310069" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CH"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_CH_49857ca2-111f-4291-9d7d-3e41a7310069" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN_904ab014-335e-48f2-a780-6ad560c21aad" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_CN_904ab014-335e-48f2-a780-6ad560c21aad" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IN_a6b2d9c6-0a79-4ab7-bfb1-ed58c83f5711" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_IN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_IN_a6b2d9c6-0a79-4ab7-bfb1-ed58c83f5711" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG_47389e47-a534-4252-94fc-c6b523896034" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_SG"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_SG_47389e47-a534-4252-94fc-c6b523896034" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_23fa9261-763b-4d39-b1f5-9e2142960eb3" xlink:to="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1e61e9a6-306d-4a2b-8181-d555a738c258" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1e61e9a6-306d-4a2b-8181-d555a738c258" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_0fe05b94-7ec1-4b8d-9154-1afce7a8280f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:to="loc_us-gaap_NoncurrentAssets_0fe05b94-7ec1-4b8d-9154-1afce7a8280f" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RestructuringChargesDetails"/>
  <link:definitionLink xlink:role="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_00051cc6-3aa2-4620-938e-fa4359f2cb08_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_00051cc6-3aa2-4620-938e-fa4359f2cb08_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_e4738474-50a5-4912-b968-7c23cedeec8c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_e4738474-50a5-4912-b968-7c23cedeec8c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeSeveranceMember_5ba19272-61c1-4f54-8d05-493c98e1c9a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeSeveranceMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:to="loc_us-gaap_EmployeeSeveranceMember_5ba19272-61c1-4f54-8d05-493c98e1c9a1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_d61205a5-6e99-4ec7-9f5a-57b573cbbea9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_d61205a5-6e99-4ec7-9f5a-57b573cbbea9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_97ed3147-8cc7-4864-b377-d9bfc1d47eb4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:to="loc_us-gaap_RestructuringCharges_97ed3147-8cc7-4864-b377-d9bfc1d47eb4" xlink:type="arc" order="1"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>14
<FILENAME>cdxs-20241231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:aef94194-0caa-4e4d-9931-7acc6f219269,g:ad5cae60-29a9-4327-bdf6-2c1f9803d5bd-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember_59525ae3-c9da-431e-9284-70d8c04ff6e1_terseLabel_en-US" xlink:label="lab_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">U.S. agency securities</link:label>
    <link:label id="lab_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">US Government Corporations and Agencies Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember" xlink:to="lab_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_93170e8a-d51c-4131-bcdd-41227ad79de1_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="lab_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_b253dd99-57a1-475b-bd3a-667ebb5b276a_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average remaining contractual terms, vested and expected to vest options</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6dfd03f6-2d7a-4738-9cfb-d158c754b363_verboseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net loss to net cash provided by (used in) operating activities:</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AuditorInformationAbstract_label_en-US" xlink:label="lab_cdxs_AuditorInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Information [Abstract]</link:label>
    <link:label id="lab_cdxs_AuditorInformationAbstract_documentation_en-US" xlink:label="lab_cdxs_AuditorInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Auditor Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AuditorInformationAbstract" xlink:href="cdxs-20241231.xsd#cdxs_AuditorInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AuditorInformationAbstract" xlink:to="lab_cdxs_AuditorInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_ef1ebd15-aed6-4894-a416-f02cd53c0f05_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax benefit at federal statutory rate</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="lab_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CoverAbstract_label_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract" xlink:to="lab_dei_CoverAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_d71b4206-302c-4096-96ff-c4f9c52a1364_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_ad0fd6d6-1b2a-4e91-9a84-2c695d1048e4_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net decrease in cash, cash equivalents and restricted cash</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_3f039ff5-52c8-4b6a-8326-7472b7825372_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Operating Lease Maturity</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_445a4292-1723-4209-bf44-8229853ac96d_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_TradingSymbol_849d314a-e86b-4e68-bf7a-ba9519445e30_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_label_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol" xlink:to="lab_dei_TradingSymbol" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_8f8010e6-a0f0-4012-8c9e-b284e7f56ea1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalent [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalent [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:to="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonNeosMember_terseLabel_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-NEOs</link:label>
    <link:label id="lab_ecd_NonNeosMember_label_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-NEOs [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonNeosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonNeosMember" xlink:to="lab_ecd_NonNeosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CashPaidAbstract_5e807518-20da-45a0-a6eb-5ac2d5281c1d_terseLabel_en-US" xlink:label="lab_cdxs_CashPaidAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid:</link:label>
    <link:label id="lab_cdxs_CashPaidAbstract_label_en-US" xlink:label="lab_cdxs_CashPaidAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Paid [Abstract]</link:label>
    <link:label id="lab_cdxs_CashPaidAbstract_documentation_en-US" xlink:label="lab_cdxs_CashPaidAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cash Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashPaidAbstract" xlink:href="cdxs-20241231.xsd#cdxs_CashPaidAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CashPaidAbstract" xlink:to="lab_cdxs_CashPaidAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_90012664-9547-4cc7-a955-8c4675d6f178_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_ad0dd8d0-f4ae-4d65-9bbd-275d69eb7e75_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term Investments</link:label>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_label_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-Term Investments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermInvestmentsMember" xlink:to="lab_us-gaap_ShortTermInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingCostsAndExpensesAbstract_89d057ee-90d0-4872-a48d-045330216e7d_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingCostsAndExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Costs and operating expenses:</link:label>
    <link:label id="lab_us-gaap_OperatingCostsAndExpensesAbstract_label_en-US" xlink:label="lab_us-gaap_OperatingCostsAndExpensesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Costs and Expenses [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingCostsAndExpensesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingCostsAndExpensesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract" xlink:to="lab_us-gaap_OperatingCostsAndExpensesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_a8aa86e1-bf05-497a-bde7-e610bafdaa47_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock" xlink:to="lab_us-gaap_InventoryPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:to="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_bbf553eb-6aac-4179-8148-994749f9e0c3_verboseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from exercises of stock options</link:label>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:to="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LandMember_115aff9a-8c9c-4d91-9675-bbc22eace4f4_terseLabel_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Land</link:label>
    <link:label id="lab_us-gaap_LandMember_label_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Land [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LandMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LandMember" xlink:to="lab_us-gaap_LandMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgDiscLineItems_label_en-US" xlink:label="lab_ecd_AwardTmgDiscLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Disclosures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="lab_ecd_AwardTmgDiscLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_EquityMethodInvesteeNameDomain_70ca260e-c91b-4be8-8a17-8a48b6960e8e_terseLabel_en-US" xlink:label="lab_srt_EquityMethodInvesteeNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment, Name [Domain]</link:label>
    <link:label id="lab_srt_EquityMethodInvesteeNameDomain_label_en-US" xlink:label="lab_srt_EquityMethodInvesteeNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EquityMethodInvesteeNameDomain" xlink:to="lab_srt_EquityMethodInvesteeNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SanCarlosMember_12536d9f-57d2-4a69-9243-47714ad4d228_terseLabel_en-US" xlink:label="lab_cdxs_SanCarlosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">San Carlos</link:label>
    <link:label id="lab_cdxs_SanCarlosMember_label_en-US" xlink:label="lab_cdxs_SanCarlosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">San Carlos [Member]</link:label>
    <link:label id="lab_cdxs_SanCarlosMember_documentation_en-US" xlink:label="lab_cdxs_SanCarlosMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">San Carlos</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember" xlink:href="cdxs-20241231.xsd#cdxs_SanCarlosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SanCarlosMember" xlink:to="lab_cdxs_SanCarlosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_0636681f-aa35-4896-ab4f-f4b6a08a223f_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted Cash and Cash Equivalents [Axis]</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash and Cash Equivalents [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b4f78617-7310-4e94-8536-466bae8f0f6d_terseLabel_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</link:label>
    <link:label id="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_label_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:to="lab_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock_a68a864a-c5ec-4545-9916-fafbf042ec50_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Reporting</link:label>
    <link:label id="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:to="lab_us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_747615d7-c631-4890-824e-073e381e46c9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Credits</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_528ba8c7-8a85-435e-b50c-55369e4224d1_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameDomain_aecf8c5f-17b6-40c8-b311-46d963773a6a_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:label id="lab_us-gaap_PlanNameDomain_label_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameDomain" xlink:to="lab_us-gaap_PlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_country_US_d76ef548-38fb-486b-ab42-5324d4e8c4a0_terseLabel_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">UNITED STATES</link:label>
    <link:label id="lab_country_US_label_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">UNITED STATES</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_US" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_US" xlink:to="lab_country_US" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNetAbstract_8377c441-d385-4c27-86b4-c0b68a5d4f9a_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryNetAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Inventory Components</link:label>
    <link:label id="lab_us-gaap_InventoryNetAbstract_label_en-US" xlink:label="lab_us-gaap_InventoryNetAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Net [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNetAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNetAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNetAbstract" xlink:to="lab_us-gaap_InventoryNetAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_9206164f-fd97-4c7b-a0f8-286ae44a73e5_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net, by Type [Abstract]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net, by Type [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_7bd48021-6014-40e9-8dd2-7b36bb81bd47_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Other non-current assets</link:label>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Assets, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent" xlink:to="lab_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_5a47be08-3f6e-44f6-9347-e3963aac3857_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with customer, liability, retainer fee, non-creditable percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_e453c6c1-ee51-486a-956c-2f7cbfec1cba_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_0b67f772-c28e-4919-820d-a70a1e459814_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_label_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Table]</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_documentation_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:to="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_329bf046-6296-47de-8b49-74ff4d6194fb_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Receivable Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_label_en-US" xlink:label="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivable Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:to="lab_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_95b4aaaf-135e-40c6-beea-0ca3945d8bcb_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by (used in) operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_908cae21-76d8-4961-93a9-f8b2f9fa8944_verboseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_55fc3d20-ee75-49ed-b5ef-31c5a1a87056_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, Performance Shares Award Outstanding Activity</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:to="lab_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SecuredDebtMember_c3ec3b8d-8364-40f2-bc73-18af4263c055_terseLabel_en-US" xlink:label="lab_us-gaap_SecuredDebtMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Secured Debt</link:label>
    <link:label id="lab_us-gaap_SecuredDebtMember_label_en-US" xlink:label="lab_us-gaap_SecuredDebtMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Secured Debt [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecuredDebtMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredDebtMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SecuredDebtMember" xlink:to="lab_us-gaap_SecuredDebtMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_42ac8da8-5f43-49e6-ac31-03a8acb754a4_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property and Equipment</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:to="lab_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseCurrent_433d4052-71f2-421d-b2b5-de18d8925f6e_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expense, current</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid Expense, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseCurrent" xlink:to="lab_us-gaap_PrepaidExpenseCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_70753046-f311-4826-b687-f6fbf5996e41_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing Method</link:label>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMethodTextBlock" xlink:to="lab_ecd_AwardTmgMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrByIndTable_terseLabel_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Arrangements, by Individual</link:label>
    <link:label id="lab_ecd_TradingArrByIndTable_label_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangements, by Individual [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrByIndTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="lab_ecd_TradingArrByIndTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_b8396714-73b7-4d13-8c3f-3aee6dad4f90_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:to="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_f8453cd8-fc8d-4182-b8d8-60cc893d4f05_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding" xlink:to="lab_dei_EntityCommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingPoliciesProcLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UseOfEstimates_4998bce9-7b57-422b-9a67-2a83107e7c8f_verboseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Use of Estimates</link:label>
    <link:label id="lab_us-gaap_UseOfEstimates_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates" xlink:to="lab_us-gaap_UseOfEstimates" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation, Amount</link:label>
    <link:label id="lab_ecd_AdjToCompAmt_label_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAmt" xlink:to="lab_ecd_AdjToCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Recovery Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryCompAmt" xlink:to="lab_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember_terseLabel_en-US" xlink:label="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table</link:label>
    <link:label id="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember_label_en-US" xlink:label="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:to="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntitySmallBusiness_ae8d484f-1d18-4283-ae9a-d729f64a5630_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntitySmallBusiness_label_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness" xlink:to="lab_dei_EntitySmallBusiness" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureAmt" xlink:to="lab_ecd_CoSelectedMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_7f1f06f1-8ac6-4944-be4a-8d79bb123f4b_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capital losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Capital Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsCapitalLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfDebtIssuanceCosts_1c13c7d2-b8c1-440a-88aa-f800741578d1_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDebtIssuanceCosts" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Payment of debt issuance costs</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDebtIssuanceCosts_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDebtIssuanceCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments of Debt Issuance Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDebtIssuanceCosts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDebtIssuanceCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDebtIssuanceCosts" xlink:to="lab_us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TabularListTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tabular List, Table</link:label>
    <link:label id="lab_ecd_TabularListTableTextBlock_label_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tabular List [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TabularListTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TabularListTableTextBlock" xlink:to="lab_ecd_TabularListTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_26387e77-efd9-4ee7-ba5d-37ba56db3135_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesC1PreferredStockMember_1e00a1fd-76d1-4794-aae2-c502603800ce_terseLabel_en-US" xlink:label="lab_cdxs_SeriesC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Series C-1 Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesC1PreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Series C-1 Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesC1PreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Series C-1 Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesC1PreferredStockMember" xlink:href="cdxs-20241231.xsd#cdxs_SeriesC1PreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesC1PreferredStockMember" xlink:to="lab_cdxs_SeriesC1PreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_908b54dc-309b-48a1-81cd-b1367cb426ac_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_b2573b9e-3883-4496-8bf0-34e91b7854d1_verboseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Other accrued liabilities</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_1c0dd621-d161-4435-8512-4aac60eccd37_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total other accrued liabilities</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_91cde2aa-c041-4456-8c86-ac890eb09040_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total shares excluded as anti-dilutive (in shares)</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember_c0b68e9e-91ff-4dc4-8f46-e6236158604a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tranche One</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Tranche One [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAwardTrancheOneMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:to="lab_us-gaap_ShareBasedCompensationAwardTrancheOneMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_87f262b0-b067-42d6-9e1d-1e254eb25317_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Line Items]</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_1de449d2-ce7b-4b86-98d5-27043d8300db_negatedLabel_en-US" xlink:label="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Right-of-use assets</link:label>
    <link:label id="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_label_en-US" xlink:label="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Right-of-use Assets</link:label>
    <link:label id="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_documentation_en-US" xlink:label="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Right-of-use Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:href="cdxs-20241231.xsd#cdxs_DeferredTaxLiabilitiesRightOfUseAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:to="lab_cdxs_DeferredTaxLiabilitiesRightOfUseAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_c475dad4-234f-4fc8-9839-01411f3dcd26_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Performance Obligation, Expected Timing of Satisfaction</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_1bc112ab-c8b3-4339-b774-2dd14f2f6c89_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of Long-Lived Assets</link:label>
    <link:label id="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:to="lab_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_InnovatusLoanFirstTrancheMember_d5488649-5100-43b7-bd17-edca507031cf_terseLabel_en-US" xlink:label="lab_cdxs_InnovatusLoanFirstTrancheMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Innovatus Loan - First Tranche</link:label>
    <link:label id="lab_cdxs_InnovatusLoanFirstTrancheMember_label_en-US" xlink:label="lab_cdxs_InnovatusLoanFirstTrancheMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Innovatus Loan - First Tranche [Member]</link:label>
    <link:label id="lab_cdxs_InnovatusLoanFirstTrancheMember_documentation_en-US" xlink:label="lab_cdxs_InnovatusLoanFirstTrancheMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Innovatus Loan - First Tranche</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanFirstTrancheMember" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanFirstTrancheMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_InnovatusLoanFirstTrancheMember" xlink:to="lab_cdxs_InnovatusLoanFirstTrancheMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CreditFacilityDomain_3b1044c7-2ca1-415e-ae99-beafe420099d_terseLabel_en-US" xlink:label="lab_us-gaap_CreditFacilityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:label id="lab_us-gaap_CreditFacilityDomain_label_en-US" xlink:label="lab_us-gaap_CreditFacilityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CreditFacilityDomain" xlink:to="lab_us-gaap_CreditFacilityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MilestoneOneMember_47ba89ee-3440-469e-948a-9fa4b84f2c12_terseLabel_en-US" xlink:label="lab_cdxs_MilestoneOneMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Milestone One</link:label>
    <link:label id="lab_cdxs_MilestoneOneMember_label_en-US" xlink:label="lab_cdxs_MilestoneOneMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Milestone One [Member]</link:label>
    <link:label id="lab_cdxs_MilestoneOneMember_documentation_en-US" xlink:label="lab_cdxs_MilestoneOneMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Milestone One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember" xlink:href="cdxs-20241231.xsd#cdxs_MilestoneOneMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MilestoneOneMember" xlink:to="lab_cdxs_MilestoneOneMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AccountingPoliciesTable_5af69ab9-1523-44b3-aa75-53da408cb329_verboseLabel_en-US" xlink:label="lab_cdxs_AccountingPoliciesTable" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies [Table]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesTable_label_en-US" xlink:label="lab_cdxs_AccountingPoliciesTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Table]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesTable_documentation_en-US" xlink:label="lab_cdxs_AccountingPoliciesTable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Accounting Policies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesTable" xlink:href="cdxs-20241231.xsd#cdxs_AccountingPoliciesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AccountingPoliciesTable" xlink:to="lab_cdxs_AccountingPoliciesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember_81fa8cbb-46c4-40bf-a4a8-83dfd0bad399_terseLabel_en-US" xlink:label="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commercialization And Enzyme Supply Agreement</link:label>
    <link:label id="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember_label_en-US" xlink:label="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commercialization And Enzyme Supply Agreement [Member]</link:label>
    <link:label id="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember_documentation_en-US" xlink:label="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Commercialization And Enzyme Supply Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_CommercializationAndEnzymeSupplyAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:to="lab_cdxs_CommercializationAndEnzymeSupplyAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Goodwill_1af84518-58f5-4018-a3e5-e8ce77814271_verboseLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_b99961a5-937d-4630-8886-15e8cd397460_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Goodwill at beginning of period</link:label>
    <link:label id="lab_us-gaap_Goodwill_2d7cd978-9411-4312-bc19-60aab6ff28b1_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Goodwill at end of period</link:label>
    <link:label id="lab_us-gaap_Goodwill_label_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill" xlink:to="lab_us-gaap_Goodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesAAndBPreferredStockMember_81b0b5b3-f58b-4db3-80a5-488a9fb92d27_terseLabel_en-US" xlink:label="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Series A and B Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesAAndBPreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Series A And B Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesAAndBPreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Series A And B Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember" xlink:href="cdxs-20241231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesAAndBPreferredStockMember" xlink:to="lab_cdxs_SeriesAAndBPreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_443059a6-7b6f-4588-b968-5c87af6356a1_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Taxes paid related to net share settlement of equity awards</link:label>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_83054703-1a19-4c71-84a7-cc1dbcc4acb0_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other comprehensive gain:</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Net of Tax [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PiperSandlerCoMember_d925c7bb-d10c-4636-968a-646f64d77719_terseLabel_en-US" xlink:label="lab_cdxs_PiperSandlerCoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PSC</link:label>
    <link:label id="lab_cdxs_PiperSandlerCoMember_label_en-US" xlink:label="lab_cdxs_PiperSandlerCoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Piper Sandler &amp; Co [Member]</link:label>
    <link:label id="lab_cdxs_PiperSandlerCoMember_documentation_en-US" xlink:label="lab_cdxs_PiperSandlerCoMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Piper Sandler &amp; Co</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PiperSandlerCoMember" xlink:href="cdxs-20241231.xsd#cdxs_PiperSandlerCoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PiperSandlerCoMember" xlink:to="lab_cdxs_PiperSandlerCoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_3bdde715-584a-4530-8abe-d12dd22f692c_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, number of installments</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_d9231972-d3d9-4334-9832-01a2ebfd68f5_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock options</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember" xlink:to="lab_us-gaap_EmployeeStockOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Depreciation_32d77a78-cc6d-4ad4-95b3-36987c155c57_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:label id="lab_us-gaap_Depreciation_label_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Depreciation" xlink:to="lab_us-gaap_Depreciation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_f30b22c5-cd01-4a16-ab18-ad0faf619104_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_60bfcc07-e5e0-4fb1-ba4b-61cd276218a2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_54b2e0b3-fe70-451d-a81e-dedf2a87f5ab_totalLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Comprehensive loss</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AwardTypeAxis_4b660f8d-ad17-4c19-8097-ea7eea5f7b28_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AwardTypeAxis_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="lab_us-gaap_AwardTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_b6c98782-0a99-47f2-9b60-aae126a20017_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_90c9137a-6b46-46b6-b1a0-c92b2d47835b_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Net deferred tax liabilities</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilities" xlink:to="lab_us-gaap_DeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CorporateDebtSecuritiesMember_8d0db1c7-bfd3-47de-8ea3-6d4c63398d2c_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Corporate debt</link:label>
    <link:label id="lab_us-gaap_CorporateDebtSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_CorporateDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate Debt Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateDebtSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateDebtSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CorporateDebtSecuritiesMember" xlink:to="lab_us-gaap_CorporateDebtSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_a6b36178-dcec-49a8-9e84-9973b7f6a8fe_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Restricted Cash</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:to="lab_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_0fb2c4f2-1ab3-4704-8760-476e5eb8daa3_verboseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Property and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_fa84f6bf-807a-4ba5-aa30-747138946e80_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Property and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_6c1b9fbb-0417-4bb5-834e-ad9d05826f5c_terseLabel_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_label_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_IcfrAuditorAttestationFlag" xlink:to="lab_dei_IcfrAuditorAttestationFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Liabilities_6ce22730-c58d-40e0-ab7e-c1d950995128_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:label id="lab_us-gaap_Liabilities_label_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities" xlink:to="lab_us-gaap_Liabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncurrentAssets_1f3c7d42-2246-46fd-80c6-fd63ec874e46_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-lived assets</link:label>
    <link:label id="lab_us-gaap_NoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncurrentAssets" xlink:to="lab_us-gaap_NoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_de6501c0-ea97-4e06-826c-177f3ebece7b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options exercisable (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConvertibleDebtMember_a526c705-613b-41e4-9922-856be09e7535_terseLabel_en-US" xlink:label="lab_us-gaap_ConvertibleDebtMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Convertible Debt</link:label>
    <link:label id="lab_us-gaap_ConvertibleDebtMember_label_en-US" xlink:label="lab_us-gaap_ConvertibleDebtMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Convertible Debt [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebtMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConvertibleDebtMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConvertibleDebtMember" xlink:to="lab_us-gaap_ConvertibleDebtMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_22888568-06bc-4b5b-a626-c09e0a0946f4_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_11a46ac4-aa28-4eb6-be1e-dbcac7bb22a3_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_6bac6467-6a96-48e1-ad37-f6201b99e176_verboseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Foreign Currency Translation</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevolvingCreditFacilityMember_1243fe5f-6a2a-43fe-b06e-7a99e093b8be_terseLabel_en-US" xlink:label="lab_us-gaap_RevolvingCreditFacilityMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revolving Credit Facility</link:label>
    <link:label id="lab_us-gaap_RevolvingCreditFacilityMember_label_en-US" xlink:label="lab_us-gaap_RevolvingCreditFacilityMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revolving Credit Facility [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevolvingCreditFacilityMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevolvingCreditFacilityMember" xlink:to="lab_us-gaap_RevolvingCreditFacilityMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrExpirationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrExpirationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration Date</link:label>
    <link:label id="lab_ecd_TrdArrExpirationDate_label_en-US" xlink:label="lab_ecd_TrdArrExpirationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Expiration Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrExpirationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrExpirationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrExpirationDate" xlink:to="lab_ecd_TrdArrExpirationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_0a7b4b3a-b168-4557-9c61-e3e88d4f1afd_verboseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Investing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentOwnedBalanceShares_2c867558-a4aa-406c-9068-b6b5ff5594f9_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentOwnedBalanceShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment owned, balance (in shares)</link:label>
    <link:label id="lab_us-gaap_InvestmentOwnedBalanceShares_label_en-US" xlink:label="lab_us-gaap_InvestmentOwnedBalanceShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Owned, Balance, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentOwnedBalanceShares" xlink:to="lab_us-gaap_InvestmentOwnedBalanceShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_a534c8bd-eac0-4f47-823b-5628d44b65cc_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current portion of lease obligations - Operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnAmt" xlink:to="lab_ecd_TotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_6a69ba88-b107-4222-af02-b9712dec7762_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Rate Reconciliation</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit), Effective Income Tax Rate Reconciliation, Amount [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_bb8bf5ad-476a-4b0d-9080-bc76be0a3c74_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Credit losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Footnote</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjFnTextBlock_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:to="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_06fde378-56b7-4933-89f5-32e1258525be_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net operating losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeqWellMember_af4d7f93-65fc-4780-bb6d-75e7f9ac59c8_terseLabel_en-US" xlink:label="lab_cdxs_SeqWellMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">seqWell</link:label>
    <link:label id="lab_cdxs_SeqWellMember_label_en-US" xlink:label="lab_cdxs_SeqWellMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">seqWell [Member]</link:label>
    <link:label id="lab_cdxs_SeqWellMember_documentation_en-US" xlink:label="lab_cdxs_SeqWellMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">seqWell</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeqWellMember" xlink:to="lab_cdxs_SeqWellMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquipmentMember_0d948eb8-b2e5-495c-806d-564fcd6a4e44_terseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Laboratory equipment</link:label>
    <link:label id="lab_us-gaap_EquipmentMember_label_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquipmentMember" xlink:to="lab_us-gaap_EquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_01177c50-6723-459e-97a2-90e9a6548d22_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_5f1aeb4b-879c-4109-a59d-8385c0e49ac8_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock upon exercise of stock options (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_5d5949fb-76aa-43be-b959-e7331c595fd6_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Exercised (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_FinanceLeaseCost_301b1c77-c581-4375-b499-6c17837167d0_terseLabel_en-US" xlink:label="lab_cdxs_FinanceLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance lease costs</link:label>
    <link:label id="lab_cdxs_FinanceLeaseCost_label_en-US" xlink:label="lab_cdxs_FinanceLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance Lease, Cost</link:label>
    <link:label id="lab_cdxs_FinanceLeaseCost_documentation_en-US" xlink:label="lab_cdxs_FinanceLeaseCost" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Finance Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinanceLeaseCost" xlink:href="cdxs-20241231.xsd#cdxs_FinanceLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_FinanceLeaseCost" xlink:to="lab_cdxs_FinanceLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentLineItems_a338a494-d1e5-4389-89d0-a57f608e3067_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument [Line Items]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentLineItems_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentLineItems" xlink:to="lab_us-gaap_DebtInstrumentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_26b81cc5-32bc-4df3-821b-715ced75b17a_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less: allowances</link:label>
    <link:label id="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_label_en-US" xlink:label="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:to="lab_us-gaap_AllowanceForNotesAndLoansReceivableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Named Executive Officers, Footnote</link:label>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_label_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Named Executive Officers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:to="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_ae4c88d1-d83a-4467-a6aa-2c5480946ce0_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted Average Exercise Price Per Share</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_93e6d48d-1f26-441f-a8d9-bab8fe22f21b_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and development</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_159a4aa2-edf3-4204-a6f7-4004c22d4967_verboseLabel_en-US" xlink:label="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Basis of Presentation and Principles of Consolidation</link:label>
    <link:label id="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basis of Accounting, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="lab_us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentNumberOfTranches_d2340c13-e350-41ad-885f-db4e3765f3d6_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, number of tranches</link:label>
    <link:label id="lab_cdxs_DebtInstrumentNumberOfTranches_label_en-US" xlink:label="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Number of Tranches</link:label>
    <link:label id="lab_cdxs_DebtInstrumentNumberOfTranches_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Number of Tranches</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentNumberOfTranches" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentNumberOfTranches"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentNumberOfTranches" xlink:to="lab_cdxs_DebtInstrumentNumberOfTranches" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_17815ff1-707e-4ab6-83af-1082b8eef1c9_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain on available-for-sale short-term investments, net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_01fa9875-c1f9-4e85-83cd-cb0288b49955_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average common stock shares used in computing net loss per share, diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_terseLabel_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value</link:label>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_label_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:to="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquity_6c5670cf-3646-4005-b470-98c194fd9e67_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total stockholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_34252e01-32d5-47e1-bd6f-84b98f3cfd1b_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance at beginning of period</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_642724a7-ac91-4026-b61e-7199eecfe317_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance at end of period</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity" xlink:to="lab_us-gaap_StockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGross_1213021e-72a5-4cfe-b792-47c78d1af322_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGross_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGross" xlink:to="lab_us-gaap_DeferredTaxAssetsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_f2c42677-4908-4d32-ba43-9e16f9b060d3_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Unrestricted Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:to="lab_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockPeriod_70420a4e-90e9-4c75-9bb5-589f0253eb98_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of stock, period</link:label>
    <link:label id="lab_cdxs_SaleOfStockPeriod_label_en-US" xlink:label="lab_cdxs_SaleOfStockPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Period</link:label>
    <link:label id="lab_cdxs_SaleOfStockPeriod_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockPeriod" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockPeriod" xlink:to="lab_cdxs_SaleOfStockPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock_b4802e14-121c-4057-bb8c-e57ee13440a7_terseLabel_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Collaborative Arrangements</link:label>
    <link:label id="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CollaborativeArrangementDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:to="lab_us-gaap_CollaborativeArrangementDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_cfb6c9dd-eaa1-49b7-a748-64b5e42d2a3f_terseLabel_en-US" xlink:label="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable borrowing base percentage</link:label>
    <link:label id="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_label_en-US" xlink:label="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage</link:label>
    <link:label id="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_documentation_en-US" xlink:label="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:href="cdxs-20241231.xsd#cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:to="lab_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_ce0b971a-e246-458d-bbe7-8dcd24b7ae3e_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MilestonePaymentPerTargetGeneMember_995412c3-a8d2-4977-9b15-18a02b719bb5_terseLabel_en-US" xlink:label="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Milestone Payment Per Target Gene</link:label>
    <link:label id="lab_cdxs_MilestonePaymentPerTargetGeneMember_label_en-US" xlink:label="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Milestone Payment Per Target Gene [Member]</link:label>
    <link:label id="lab_cdxs_MilestonePaymentPerTargetGeneMember_documentation_en-US" xlink:label="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Milestone Payment Per Target Gene</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestonePaymentPerTargetGeneMember" xlink:href="cdxs-20241231.xsd#cdxs_MilestonePaymentPerTargetGeneMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MilestonePaymentPerTargetGeneMember" xlink:to="lab_cdxs_MilestonePaymentPerTargetGeneMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_5ab97330-fa7d-443a-93d6-638eaeb7f73e_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_24637ca2-2cae-41cd-afb6-2689ce052f39_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general and administrative</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_34c03b06-85a1-470f-b5ea-374950e16a74_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined contribution plan, cost</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfSalesMember_b38e3323-9ba0-45e9-b3a7-dfc5251aae6a_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfSalesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Costs of product revenue</link:label>
    <link:label id="lab_us-gaap_CostOfSalesMember_label_en-US" xlink:label="lab_us-gaap_CostOfSalesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfSalesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfSalesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfSalesMember" xlink:to="lab_us-gaap_CostOfSalesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductMember_d0abd3c4-3586-4e8b-8cec-a16e6629ddf9_verboseLabel_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Product revenue ($0, $0 and $514 from a related party)</link:label>
    <link:label id="lab_us-gaap_ProductMember_ac15eec6-0ea9-4f84-9319-257d50bdffe0_terseLabel_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product revenue</link:label>
    <link:label id="lab_us-gaap_ProductMember_label_en-US" xlink:label="lab_us-gaap_ProductMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductMember" xlink:to="lab_us-gaap_ProductMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SaleOfStockNameOfTransactionDomain_f9c89c8f-b4d5-4261-9831-32543703156d_terseLabel_en-US" xlink:label="lab_us-gaap_SaleOfStockNameOfTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of Stock [Domain]</link:label>
    <link:label id="lab_us-gaap_SaleOfStockNameOfTransactionDomain_label_en-US" xlink:label="lab_us-gaap_SaleOfStockNameOfTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale of Stock [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockNameOfTransactionDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="lab_us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_9acbd1e0-b18e-4302-87d8-4cd818e294ea_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_afd6239c-f6fe-4cea-9bdf-f85dc9609980_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus" xlink:to="lab_dei_DocumentFiscalPeriodFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_39eccb4c-246b-4a8d-9321-88b6bce39e03_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_label_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Maturity, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:to="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_terseLabel_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Executive Categories</link:label>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_label_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Executive Categories [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="lab_ecd_AllExecutiveCategoriesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_da53b798-fc9e-4bee-b3e9-9e774a048ef8_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position Location, Balance [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationDomain" xlink:to="lab_us-gaap_BalanceSheetLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changed Peer Group, Footnote</link:label>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_label_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Changed Peer Group, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:to="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_09acdb77-89b6-4efb-b2e6-1850d049531c_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average remaining contractual terms</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsAbstract_8a019bf9-2db6-4afa-ac2f-d0d8080f11c3_verboseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Assets</link:label>
    <link:label id="lab_us-gaap_AssetsAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="lab_us-gaap_AssetsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_acb51bd8-0a71-4c4e-b7b8-932070f18cbe_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected dividend yield</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentType_450b512d-5971-4bdf-ba93-5d3f0d858ee7_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_label_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType" xlink:to="lab_dei_DocumentType" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentInterestRateEffectivePercentage_1d93387a-65cc-4f31-91f3-4d6f2ab0dd6b_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, interest rate, effective percentage</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentInterestRateEffectivePercentage_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest Rate, Effective Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="lab_us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentPaymentInKindInterest_cea3809d-4a16-4e30-91e1-ccf7aba85c6e_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentPaymentInKindInterest" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Add: payment in-kind interest</link:label>
    <link:label id="lab_cdxs_DebtInstrumentPaymentInKindInterest_label_en-US" xlink:label="lab_cdxs_DebtInstrumentPaymentInKindInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Payment In-kind Interest</link:label>
    <link:label id="lab_cdxs_DebtInstrumentPaymentInKindInterest_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentPaymentInKindInterest" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Payment In-kind Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentPaymentInKindInterest" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentPaymentInKindInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentPaymentInKindInterest" xlink:to="lab_cdxs_DebtInstrumentPaymentInKindInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_a43ea87c-6cbc-4925-8fba-4fb7e26817c4_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average remaining contractual terms, exercisable options</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_6e13c09b-4b4e-44ef-bd21-6d2cff748d17_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Amortized Cost</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_4286b8fc-5162-4c51-9b4f-404da8c331b3_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Contract with Customer</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_b5e0dc88-8eb1-4090-ac15-e38cc86a58d0_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:to="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MaximumMember_1be0f079-b117-4f19-8f83-4c0bf6d0267f_terseLabel_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum</link:label>
    <link:label id="lab_srt_MaximumMember_label_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember" xlink:to="lab_srt_MaximumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote</link:label>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_label_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:to="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022InducementPlanMember_ac3331bc-55ca-49cc-84bc-bb22dd82d5ea_terseLabel_en-US" xlink:label="lab_cdxs_A2022InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022 Inducement Plan</link:label>
    <link:label id="lab_cdxs_A2022InducementPlanMember_label_en-US" xlink:label="lab_cdxs_A2022InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022 Inducement Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2022InducementPlanMember_documentation_en-US" xlink:label="lab_cdxs_A2022InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2022 Inducement Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022InducementPlanMember" xlink:href="cdxs-20241231.xsd#cdxs_A2022InducementPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022InducementPlanMember" xlink:to="lab_cdxs_A2022InducementPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_6ccc214e-3460-4788-a88b-a0a5a2671daa_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_f18e03a5-d37f-4e73-88c7-ec494be72b03_verboseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent" xlink:to="lab_us-gaap_AccountsPayableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_f36cc8d4-c3e8-409b-943e-ea67e2f8eb02_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Carrying Value of Non-marketable Equity Securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CollaborativeArrangementConcentrationRiskMember_dafc019a-6a50-42a6-bce1-f9f58c4c5754_terseLabel_en-US" xlink:label="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement Concentration Risk</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementConcentrationRiskMember_label_en-US" xlink:label="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement Concentration Risk [Member]</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementConcentrationRiskMember_documentation_en-US" xlink:label="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement Concentration Risk</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:href="cdxs-20241231.xsd#cdxs_CollaborativeArrangementConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:to="lab_cdxs_CollaborativeArrangementConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_0d38edb1-82ef-467f-93d0-4d21b7aa3b3f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Assumptions Used to Estimate the Fair Value of Option Grants</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseCost_5f568270-bbcd-40b9-b36f-775b8f90de46_totalLabel_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease cost</link:label>
    <link:label id="lab_us-gaap_LeaseCost_label_en-US" xlink:label="lab_us-gaap_LeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCost" xlink:to="lab_us-gaap_LeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeAxis_faacb57e-2a2d-4c5e-8193-265e3c3eaa31_terseLabel_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Range [Axis]</link:label>
    <link:label id="lab_srt_RangeAxis_label_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis" xlink:to="lab_srt_RangeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:to="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9031f8c9-c925-4eb5-9c0f-13fc98ab8287_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Loss before income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GranteeStatusDomain_96b3765a-ba80-4ee3-96a6-883b1df58339_terseLabel_en-US" xlink:label="lab_us-gaap_GranteeStatusDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Grantee Status [Domain]</link:label>
    <link:label id="lab_us-gaap_GranteeStatusDomain_label_en-US" xlink:label="lab_us-gaap_GranteeStatusDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Grantee Status [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GranteeStatusDomain" xlink:to="lab_us-gaap_GranteeStatusDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:to="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryIndName" xlink:to="lab_ecd_OutstandingRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_18ca2ec5-472d-4e67-94df-a7f6b45a57a1_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VariableLeaseCost_bb71e28d-d962-42b9-8d99-7ca248c2fc3d_terseLabel_en-US" xlink:label="lab_us-gaap_VariableLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Variable lease, cost</link:label>
    <link:label id="lab_us-gaap_VariableLeaseCost_label_en-US" xlink:label="lab_us-gaap_VariableLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VariableLeaseCost" xlink:to="lab_us-gaap_VariableLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_2df991bc-6973-4e87-9bf7-793bf31f1b5b_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_03caa2ce-5955-4e29-9ec8-4a831c98853a_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Impairment</link:label>
    <link:label id="lab_us-gaap_GoodwillImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_GoodwillImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillImpairmentLoss" xlink:to="lab_us-gaap_GoodwillImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_b163896f-1b34-4287-a2dd-fe65b45b108b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Shares Not Included in Computation of Diluted Net Loss Per Share</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PerformanceBasedOptionsPBOsMember_6c532b33-85c6-4374-a306-22028ee8ca64_terseLabel_en-US" xlink:label="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PBOs</link:label>
    <link:label id="lab_cdxs_PerformanceBasedOptionsPBOsMember_label_en-US" xlink:label="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Based Options (PBOs) [Member]</link:label>
    <link:label id="lab_cdxs_PerformanceBasedOptionsPBOsMember_documentation_en-US" xlink:label="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Performance Based Options (PBOs)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PerformanceBasedOptionsPBOsMember" xlink:to="lab_cdxs_PerformanceBasedOptionsPBOsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing Predetermined</link:label>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_label_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Predetermined [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgPredtrmndFlag" xlink:to="lab_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_47e3e58a-2bf7-435e-a4dd-194eb40489f9_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment, Name [Axis]</link:label>
    <link:label id="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_label_en-US" xlink:label="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment, Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:to="lab_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashNoncurrent_c23a7260-626c-45a5-9369-717f7f08de99_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted cash</link:label>
    <link:label id="lab_us-gaap_RestrictedCashNoncurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashNoncurrent" xlink:to="lab_us-gaap_RestrictedCashNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_b9d60c6b-6e4f-4a79-a91d-b25e6bd915bf_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net loss per share, diluted (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted" xlink:to="lab_us-gaap_EarningsPerShareDiluted" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RepurchaseAgreementCounterpartyNameDomain_10096499-fde9-4dd9-a2b2-82b5be391fc3_terseLabel_en-US" xlink:label="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:label id="lab_srt_RepurchaseAgreementCounterpartyNameDomain_label_en-US" xlink:label="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="lab_srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_08c2a875-47d4-4dea-b60a-d821c1961c06_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StateAndLocalJurisdictionMember_1f1098fa-7938-4655-8491-536817df107d_terseLabel_en-US" xlink:label="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_StateAndLocalJurisdictionMember_label_en-US" xlink:label="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State and Local Jurisdiction [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StateAndLocalJurisdictionMember" xlink:to="lab_us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_7a0e5be6-1d4a-4e25-8512-7ca10c7b1eaf_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">United States</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_4c783e91-cd86-440f-85a2-a18e20005a43_verboseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_2ac22209-6f16-4171-b190-f3fd8e58d1cc_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current provision</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_terseLabel_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement does not require Recovery</link:label>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_label_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Does Not Require Recovery [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:to="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments_c00dac20-b7de-48d6-909b-42f5f1e4cddc_verboseLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash, cash equivalents, and short-term investments</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments_b9e8eaff-32b4-4334-a49a-a1eb89bf79fc_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, and Short-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments" xlink:to="lab_us-gaap_CashCashEquivalentsAndShortTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_875f6d12-5426-43d5-a29e-b6f30659e142_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award vesting rights percentage</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_1c372686-ba6c-407b-8aec-c095afebdb4a_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring and related cost, number of positions eliminated, period percent</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring and Related Cost, Number of Positions Eliminated, Period Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:to="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_c5459769-636d-4c5b-9fb3-3b7c969a0693_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_056bfa5a-20ee-459b-96f5-d9b8a00fce4f_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_38042126-adfc-4ded-8e00-9158411f642e_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesIssued" xlink:to="lab_us-gaap_PreferredStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MajorCustomersAxis_983ef21a-76be-4a44-aa2d-23a2971dd088_terseLabel_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:label id="lab_srt_MajorCustomersAxis_label_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MajorCustomersAxis" xlink:to="lab_srt_MajorCustomersAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_194309bc-d507-45b2-8660-ae619ba43319_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_c6e1f59b-5d09-4c11-baa8-68cbc68ba03b_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Research and development credits</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:to="lab_us-gaap_IncomeTaxReconciliationTaxCreditsResearch" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IndemnificationGuaranteeMember_9e67788c-56f1-4c5c-8381-27ed336a5645_terseLabel_en-US" xlink:label="lab_us-gaap_IndemnificationGuaranteeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Indemnification agreement</link:label>
    <link:label id="lab_us-gaap_IndemnificationGuaranteeMember_label_en-US" xlink:label="lab_us-gaap_IndemnificationGuaranteeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Indemnification Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndemnificationGuaranteeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndemnificationGuaranteeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IndemnificationGuaranteeMember" xlink:to="lab_us-gaap_IndemnificationGuaranteeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_96aecaa3-1eca-4e51-98cb-d39cac8bc625_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from sale of property and equipment</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2024InducementPlanMember_899d09e4-790b-42e2-b0b5-906a17514a27_terseLabel_en-US" xlink:label="lab_cdxs_A2024InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2024 Inducement Plan</link:label>
    <link:label id="lab_cdxs_A2024InducementPlanMember_label_en-US" xlink:label="lab_cdxs_A2024InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2024 Inducement Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2024InducementPlanMember_documentation_en-US" xlink:label="lab_cdxs_A2024InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2024 Inducement Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2024InducementPlanMember" xlink:href="cdxs-20241231.xsd#cdxs_A2024InducementPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2024InducementPlanMember" xlink:to="lab_cdxs_A2024InducementPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_e8551132-ebd7-4cbf-a40b-f89d4583bc18_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Provision for income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_f7b2b52f-0686-4119-ba68-926414e77019_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Provision for income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_00f18ce3-3243-4795-b94b-e5bfedb74528_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Forfeited/Expired (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_621058e3-3620-4b7b-99cc-5ab28bbb4be0_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average remaining amortization period</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_155b7d85-eced-44f4-a672-90f3739b5ae0_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Total revenues</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c43f442c-bc3d-4403-a324-01205eeda242_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenues</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MasterCollaborationResearchAgreementMember_909e4b26-9b77-4df5-920b-a6ca36562535_terseLabel_en-US" xlink:label="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Master Collaboration &amp; Research Agreement</link:label>
    <link:label id="lab_cdxs_MasterCollaborationResearchAgreementMember_label_en-US" xlink:label="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Master Collaboration &amp; Research Agreement [Member]</link:label>
    <link:label id="lab_cdxs_MasterCollaborationResearchAgreementMember_documentation_en-US" xlink:label="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Master Collaboration &amp; Research Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MasterCollaborationResearchAgreementMember" xlink:to="lab_cdxs_MasterCollaborationResearchAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_InnovatusLoanSecondTrancheMember_8a5aeb40-2ae8-4fa6-bb99-b8802fa20835_terseLabel_en-US" xlink:label="lab_cdxs_InnovatusLoanSecondTrancheMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Innovatus Loan - Second Tranche</link:label>
    <link:label id="lab_cdxs_InnovatusLoanSecondTrancheMember_label_en-US" xlink:label="lab_cdxs_InnovatusLoanSecondTrancheMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Innovatus Loan - Second Tranche [Member]</link:label>
    <link:label id="lab_cdxs_InnovatusLoanSecondTrancheMember_documentation_en-US" xlink:label="lab_cdxs_InnovatusLoanSecondTrancheMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Innovatus Loan - Second Tranche</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanSecondTrancheMember" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanSecondTrancheMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_InnovatusLoanSecondTrancheMember" xlink:to="lab_cdxs_InnovatusLoanSecondTrancheMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_92f8a6b9-8e33-4d4b-acb9-eba16280915a_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other long-term liabilities</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Other Noncurrent Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_1944d70b-53e0-47da-9cfe-2aeb7392fd95_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7db1b51f-a92d-4b7d-b017-64dcdcc41324_terseLabel_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Owned Not Readily Marketable [Axis]</link:label>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis_label_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Owned Not Readily Marketable [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:to="lab_us-gaap_SecurityOwnedNotReadilyMarketableAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_ce99f30e-52f4-4c56-ad9f-fba3b2158d70_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_1fa72dba-d51f-45b2-9cd2-227697525895_terseLabel_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity securities without readily determinable fair value, upward (downward) price adjustment, annual amount</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_label_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_documentation_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:to="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_571278d7-fed6-4d27-b5e0-bb609dabb400_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_64a1eb08-465e-46da-8a08-718b514a6a05_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment ward, number of additional shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_34714881-00bc-4e30-b636-8527647446db_terseLabel_en-US" xlink:label="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Chesapeake Space, Five Year Renewal Option</link:label>
    <link:label id="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_label_en-US" xlink:label="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Chesapeake Space, Five Year Renewal Option [Member]</link:label>
    <link:label id="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_documentation_en-US" xlink:label="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Chesapeake Space, Five Year Renewal Option</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" xlink:href="cdxs-20241231.xsd#cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" xlink:to="lab_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement_469a39d8-2285-4bfe-9dfc-60cd94761981_terseLabel_en-US" xlink:label="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other non-cash items</link:label>
    <link:label id="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement_label_en-US" xlink:label="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Operating Activities, Cash Flow Statement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:to="lab_us-gaap_OtherOperatingActivitiesCashFlowStatement" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PerformanceShareUnitsPSUsMember_92d15579-151a-4f89-92ef-ec5223ca9812_terseLabel_en-US" xlink:label="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance Share Units (PSUs)</link:label>
    <link:label id="lab_cdxs_PerformanceShareUnitsPSUsMember_label_en-US" xlink:label="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Share Units (PSUs) [Member]</link:label>
    <link:label id="lab_cdxs_PerformanceShareUnitsPSUsMember_documentation_en-US" xlink:label="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Performance Share Units (PSUs)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PerformanceShareUnitsPSUsMember" xlink:to="lab_cdxs_PerformanceShareUnitsPSUsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllAdjToCompMember_terseLabel_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Adjustments to Compensation</link:label>
    <link:label id="lab_ecd_AllAdjToCompMember_label_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Adjustments to Compensation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllAdjToCompMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="lab_ecd_AllAdjToCompMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent_7158df45-9db5-4d07-9cc5-9a6764d2aef6_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accrued compensation</link:label>
    <link:label id="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee-related Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="lab_us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_a33a2d18-010e-44c7-8034-36ab61bfaa4e_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapital_09e3cbf9-c825-455f-948b-a58c239e3a29_verboseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapital_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapital" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid in Capital</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapital" xlink:to="lab_us-gaap_AdditionalPaidInCapital" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_6f9323e6-e134-4fb7-8309-122454e77753_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Collaborative Arrangements and Non-collaborative Arrangement Transactions [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:to="lab_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCharges_30495369-cf99-4d0f-88a5-2172c5d87f93_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring charges</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_label_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCharges" xlink:to="lab_us-gaap_RestructuringCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_c8b0d594-0f16-48f8-9bf0-4c47d8835f4e_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LegalEntityAxis_81f30548-d179-44fb-b8b2-45107c31de30_terseLabel_en-US" xlink:label="lab_dei_LegalEntityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:label id="lab_dei_LegalEntityAxis_label_en-US" xlink:label="lab_dei_LegalEntityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LegalEntityAxis" xlink:to="lab_dei_LegalEntityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_f85d3c32-33ee-4fbb-a082-ac4f98115f7f_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross proceeds from public offering</link:label>
    <link:label id="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_label_en-US" xlink:label="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale of Stock, Consideration Received on Transaction, Gross</link:label>
    <link:label id="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sale of Stock, Consideration Received on Transaction, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockConsiderationReceivedOnTransactionGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:to="lab_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionAxis_d7aaa7e1-9865-46e6-8817-7c44eddbc24a_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionAxis_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis" xlink:to="lab_us-gaap_RelatedPartyTransactionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CantorSalesAgreementMember_0943a8a3-7b51-47c8-a7c7-35810c1b1965_terseLabel_en-US" xlink:label="lab_cdxs_CantorSalesAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cantor Sales Agreement</link:label>
    <link:label id="lab_cdxs_CantorSalesAgreementMember_label_en-US" xlink:label="lab_cdxs_CantorSalesAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cantor Sales Agreement [Member]</link:label>
    <link:label id="lab_cdxs_CantorSalesAgreementMember_documentation_en-US" xlink:label="lab_cdxs_CantorSalesAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cantor Sales Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CantorSalesAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_CantorSalesAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CantorSalesAgreementMember" xlink:to="lab_cdxs_CantorSalesAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_5524d828-65f0-4fde-b998-0b9e7d16286e_terseLabel_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name of Property [Domain]</link:label>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_label_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Name of Property [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:to="lab_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_f33c06d0-0a81-4f79-96b9-7cfa46d03e39_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected timing of satisfaction, period</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCash_e30ccbfb-a3df-4854-90bc-5c0d696ad3c4_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted cash, current</link:label>
    <link:label id="lab_us-gaap_RestrictedCash_label_en-US" xlink:label="lab_us-gaap_RestrictedCash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCash" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCash" xlink:to="lab_us-gaap_RestrictedCash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongtermDebtTypeDomain_62cb8e47-8b26-4ef8-9625-8916c6acc788_terseLabel_en-US" xlink:label="lab_us-gaap_LongtermDebtTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_LongtermDebtTypeDomain_label_en-US" xlink:label="lab_us-gaap_LongtermDebtTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongtermDebtTypeDomain" xlink:to="lab_us-gaap_LongtermDebtTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFee_0542fb5b-a584-45d9-84df-0b66e2daf4f0_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with customer, liability, retainer fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFee_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFee_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFee"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRetainerFee" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressStateOrProvince_658941ec-e5b1-44bd-b37c-36ac498174a2_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince" xlink:to="lab_dei_EntityAddressStateOrProvince" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Erroneous Compensation Analysis</link:label>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_label_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Erroneous Compensation Analysis [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompAnalysisTextBlock" xlink:to="lab_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_16a50e88-cda6-406f-9751-78590621f382_terseLabel_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_label_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VestingDomain_2bcaf7ad-61c9-402f-8168-496068cb732a_terseLabel_en-US" xlink:label="lab_us-gaap_VestingDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting [Domain]</link:label>
    <link:label id="lab_us-gaap_VestingDomain_label_en-US" xlink:label="lab_us-gaap_VestingDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vesting [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VestingDomain" xlink:to="lab_us-gaap_VestingDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_12e3f3c7-76d5-4bef-810a-225aaedc7e90_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Non-vested, beginning of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_e1cffb91-a96c-4e97-8614-975aa6e13848_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Non-vested, end of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e581dbdc-fb61-4d1a-8aee-8b99bc11b841_verboseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Liabilities and Stockholders&#8217; Equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_0cb32541-b4bd-4695-b386-6e15a0546cdf_negatedLabel_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accrued compensation and other accrued liabilities</link:label>
    <link:label id="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_label_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities</link:label>
    <link:label id="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_documentation_en-US" xlink:label="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:href="cdxs-20241231.xsd#cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:to="lab_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2019PlanMember_aad8dba6-6e2d-4014-bad4-ad5fa53f2052_terseLabel_en-US" xlink:label="lab_cdxs_A2019PlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2019 Plan</link:label>
    <link:label id="lab_cdxs_A2019PlanMember_label_en-US" xlink:label="lab_cdxs_A2019PlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2019 Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2019PlanMember_documentation_en-US" xlink:label="lab_cdxs_A2019PlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2019 Plan [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019PlanMember" xlink:href="cdxs-20241231.xsd#cdxs_A2019PlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2019PlanMember" xlink:to="lab_cdxs_A2019PlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDeterminationDate_terseLabel_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:label id="lab_ecd_RestatementDeterminationDate_label_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDeterminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDeterminationDate" xlink:to="lab_ecd_RestatementDeterminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_76a18dba-9ae8-4f69-a64f-08bc95bc430c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested and expected to vest (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTable_terseLabel_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure</link:label>
    <link:label id="lab_ecd_PvpTable_label_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTable" xlink:to="lab_ecd_PvpTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_f6e2d8e6-7cd6-4c62-95ae-af05781ee2e3_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Property, Plant and Equipment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_da55dc5f-0f4e-46a0-809d-b440632ea42b_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, beginning of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_5f2447cb-6fc9-40b1-9072-b75a0b19b228_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, end of period (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_4c156477-358a-4c41-9a2d-be599ad431f0_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable" xlink:to="lab_us-gaap_ConcentrationRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_09748987-87a5-4f72-8e63-7d50d46d17b6_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right-of-use assets - Operating leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_620c7fb1-8d10-44e8-a6d3-9354752c2f83_periodStartLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance, right-of-use assets - operation leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_01ccad6b-fa2b-46c1-97dd-3ab9951fe441_periodEndLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance, right-of-use assets - operation leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompRecoveryTable_terseLabel_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Erroneously Awarded Compensation Recovery</link:label>
    <link:label id="lab_ecd_ErrCompRecoveryTable_label_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Erroneously Awarded Compensation Recovery [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompRecoveryTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="lab_ecd_ErrCompRecoveryTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_877923f8-609f-49d6-a24d-f007c3a68a8d_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, beginning of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_5590a068-9730-4f42-8fe9-f5e73709e5df_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, end of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ClassOfWarrantOrRightFairValue_c7a4e1e1-3be9-4b67-bba5-751ace85ee2e_terseLabel_en-US" xlink:label="lab_cdxs_ClassOfWarrantOrRightFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of warrant or right, fair value</link:label>
    <link:label id="lab_cdxs_ClassOfWarrantOrRightFairValue_label_en-US" xlink:label="lab_cdxs_ClassOfWarrantOrRightFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class Of Warrant Or Right, Fair Value</link:label>
    <link:label id="lab_cdxs_ClassOfWarrantOrRightFairValue_documentation_en-US" xlink:label="lab_cdxs_ClassOfWarrantOrRightFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Class Of Warrant Or Right, Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ClassOfWarrantOrRightFairValue" xlink:href="cdxs-20241231.xsd#cdxs_ClassOfWarrantOrRightFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ClassOfWarrantOrRightFairValue" xlink:to="lab_cdxs_ClassOfWarrantOrRightFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseContractualTermAxis_6b29b13e-4c2b-4083-a57e-b98b5e330138_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseContractualTermAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease Contractual Term [Axis]</link:label>
    <link:label id="lab_us-gaap_LeaseContractualTermAxis_label_en-US" xlink:label="lab_us-gaap_LeaseContractualTermAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease Contractual Term [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseContractualTermAxis" xlink:to="lab_us-gaap_LeaseContractualTermAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_ec36bc94-88e2-46c3-b6d4-a68a0ae1ad0f_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:to="lab_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_84a4bb75-d624-464d-8594-bdf9f7085167_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Loss per Share</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock" xlink:to="lab_us-gaap_EarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_f8f41f47-d267-4ada-8fd4-10edcaab1b13_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under employee stock purchase plan</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, Employee Stock Purchase Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_dc9e233c-7e8c-44d8-9377-5b1c55f1241a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_5ccf81a4-6382-41ff-bbc3-9914b31d60b0_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock upon exercise of stock options</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_0b6e3f89-0d31-4155-8998-86759fefff6e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_a372ecc0-5a2e-4191-80da-feb07d163e70_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Peer Group Issuers, Footnote</link:label>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_label_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peer Group Issuers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:to="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentDomain_032491b1-c348-4a64-9065-95671627a20e_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments [Domain]</link:label>
    <link:label id="lab_us-gaap_SegmentDomain_label_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentDomain" xlink:to="lab_us-gaap_SegmentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8d85a3eb-2d7c-4086-87b4-d39aa5015ca3_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_dc8f6502-0e38-44de-9a4c-75f6ffd6dc63_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of days for payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Milestone Revenue, Number Of Days For Payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Milestone Revenue, Number Of Days For Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:to="lab_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SupplyAgreementMember_86d04dcb-cab7-4d44-b8be-468588a5dc71_terseLabel_en-US" xlink:label="lab_cdxs_SupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Supply Agreement</link:label>
    <link:label id="lab_cdxs_SupplyAgreementMember_label_en-US" xlink:label="lab_cdxs_SupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supply Agreement [Member]</link:label>
    <link:label id="lab_cdxs_SupplyAgreementMember_documentation_en-US" xlink:label="lab_cdxs_SupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Supply Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_SupplyAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SupplyAgreementMember" xlink:to="lab_cdxs_SupplyAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoMember_terseLabel_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO</link:label>
    <link:label id="lab_ecd_PeoMember_label_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoMember" xlink:to="lab_ecd_PeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndName_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_TrdArrIndName_label_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndName" xlink:to="lab_ecd_TrdArrIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_5edde208-0828-4c98-96bd-d31558e88959_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_ab4fb96e-9379-422c-85fb-9b39c32fdd01_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of stock, securities registered aggregate amount</link:label>
    <link:label id="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_label_en-US" xlink:label="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Securities Registered Aggregate Amount</link:label>
    <link:label id="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Securities Registered Aggregate Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:to="lab_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityPublicFloat_53fcb3ed-3142-4a08-955e-db4e6f12bdae_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:label id="lab_dei_EntityPublicFloat_label_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat" xlink:to="lab_dei_EntityPublicFloat" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_9cdb15c9-707f-4f27-8caa-a263dbc498e1_terseLabel_en-US" xlink:label="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Customers That Contributed 10% or More of Total Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_label_en-US" xlink:label="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedules of Concentration of Risk, by Risk Factor [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="lab_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Table</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_7ed2d51e-5851-4d8f-a977-32d571cc7407_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other nondeductible items</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockValueOfSharesForIssuance_1475fe00-0d79-4bea-bdbc-fa63baca556b_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of stock, value of shares for issuance</link:label>
    <link:label id="lab_cdxs_SaleOfStockValueOfSharesForIssuance_label_en-US" xlink:label="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Value Of Shares For Issuance</link:label>
    <link:label id="lab_cdxs_SaleOfStockValueOfSharesForIssuance_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Value Of Shares For Issuance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockValueOfSharesForIssuance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:to="lab_cdxs_SaleOfStockValueOfSharesForIssuance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_29d0ef94-6fce-46b9-ae65-e12e7f80aed8_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares reserved for future issuance (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_label_en-US" xlink:label="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Capital Shares Reserved for Future Issuance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="lab_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year</link:label>
    <link:label id="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember_label_en-US" xlink:label="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:to="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharesOutstanding_fa0bce46-d7a0-40e4-aa2e-4b268cacd769_periodStartLabel_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance at beginning of period (in shares)</link:label>
    <link:label id="lab_us-gaap_SharesOutstanding_17a16a16-d8c9-49b0-8a2d-ade113218799_periodEndLabel_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance at end of period (in shares)</link:label>
    <link:label id="lab_us-gaap_SharesOutstanding_label_en-US" xlink:label="lab_us-gaap_SharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharesOutstanding" xlink:to="lab_us-gaap_SharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_AggtErrCompAmt_label_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompAmt" xlink:to="lab_ecd_AggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_0056b85e-e42f-4e83-8369-6aa10a2007ce_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue recognized, including opening balance</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized, Including Opening Balance</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized, Including Opening Balance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_661a6dfa-073e-4e5a-b74e-f9844f8b237f_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_label_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber" xlink:to="lab_dei_LocalPhoneNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_6f5480db-152f-492e-ae51-d84f7e927a2d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined</link:label>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_label_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:to="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_2dd84a70-e7da-4e0a-a2f2-8467e0ed15b8_verboseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Revenues by Geographical Area</link:label>
    <link:label id="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reconciliation of Revenue from Segments to Consolidated [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:to="lab_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AmericasMember_9cde088b-eeef-4466-aee8-5fbce09d2f01_verboseLabel_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Americas [Member]</link:label>
    <link:label id="lab_srt_AmericasMember_d9138001-e02a-4422-b7ab-86950580eb6f_terseLabel_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Americas</link:label>
    <link:label id="lab_srt_AmericasMember_label_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Americas [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AmericasMember" xlink:to="lab_srt_AmericasMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_ed771674-f89a-46ee-a62a-285e959e892f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional Disclosures</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_edb84d64-0c60-4d11-aa66-5a0e75e9006f_verboseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Changes in operating assets and liabilities:</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Operating Capital [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="lab_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_3c13a8e2-93ef-4ae0-a16b-cae44dc06f7d_negatedTerseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less: uncapitalized payment in-kind interest</link:label>
    <link:label id="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_label_en-US" xlink:label="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Uncapitalized Payment In-kind Interest</link:label>
    <link:label id="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Uncapitalized Payment In-kind Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" xlink:to="lab_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_03dc9c5d-ef3b-4b86-b595-5b9783a4377a_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Threshold level multiplier</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoTotalCompAmt_label_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoTotalCompAmt" xlink:to="lab_ecd_PeoTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_da768bdb-5440-41c9-b053-97502ff725a1_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Option price as a percent of common stock</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_6a4b2a8d-0f0b-498b-aef0-519ee2588f1e_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_732477f7-e6f8-4b83-bb20-8b6e227609e7_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_b3ecc759-a091-4f29-b38a-2a81a8989753_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis" xlink:to="lab_us-gaap_IncomeStatementLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_a3537cfa-a4a0-4d67-94f8-18db1548e5c0_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Options vested and expected to vest (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_8c68ee01-ba4f-4a7b-8ded-2f2c7f5eef54_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued professional and outside service fees</link:label>
    <link:label id="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_label_en-US" xlink:label="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Professional Fees</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:to="lab_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_DebtDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtDisclosureAbstract" xlink:to="lab_us-gaap_DebtDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockMember_2cfc958e-60c0-4889-80ba-84578940eeac_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock</link:label>
    <link:label id="lab_us-gaap_CommonStockMember_label_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember" xlink:to="lab_us-gaap_CommonStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge_06373aae-2c79-4ddc-b6aa-611eb8e331a0_terseLabel_en-US" xlink:label="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined contribution plan, participant eligibility, age</link:label>
    <link:label id="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge_label_en-US" xlink:label="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Participant Eligibility, Age</link:label>
    <link:label id="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge_documentation_en-US" xlink:label="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Participant Eligibility, Age</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DefinedContributionPlanParticipantEligibilityAge" xlink:href="cdxs-20241231.xsd#cdxs_DefinedContributionPlanParticipantEligibilityAge"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DefinedContributionPlanParticipantEligibilityAge" xlink:to="lab_cdxs_DefinedContributionPlanParticipantEligibilityAge" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_85b0fd15-ebe5-4d79-8bd9-7e6eb5f0f4cb_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract" xlink:to="lab_us-gaap_SegmentReportingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseInterestAccretion_63caa4ea-d72e-4813-8e91-cb886a36c73d_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseInterestAccretion" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest accretion</link:label>
    <link:label id="lab_cdxs_OperatingLeaseInterestAccretion_label_en-US" xlink:label="lab_cdxs_OperatingLeaseInterestAccretion" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Interest Accretion</link:label>
    <link:label id="lab_cdxs_OperatingLeaseInterestAccretion_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseInterestAccretion" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Interest Accretion</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseInterestAccretion" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseInterestAccretion"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseInterestAccretion" xlink:to="lab_cdxs_OperatingLeaseInterestAccretion" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_0b210b57-f83f-46c8-a80a-5004d326a9db_negatedLabel_en-US" xlink:label="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Taxes paid related to net share settlement of equity awards (in shares)</link:label>
    <link:label id="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCentralIndexKey_db7ad4fb-a11a-439e-89b7-e47eee1c8f1f_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey" xlink:to="lab_dei_EntityCentralIndexKey" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A200220PenobscotMember_112d99a7-7be8-452d-b462-70bfaa995374_terseLabel_en-US" xlink:label="lab_cdxs_A200220PenobscotMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">200-220 Penobscot</link:label>
    <link:label id="lab_cdxs_A200220PenobscotMember_label_en-US" xlink:label="lab_cdxs_A200220PenobscotMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">200-220 Penobscot [Member]</link:label>
    <link:label id="lab_cdxs_A200220PenobscotMember_documentation_en-US" xlink:label="lab_cdxs_A200220PenobscotMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">200-220 Penobscot</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A200220PenobscotMember" xlink:href="cdxs-20241231.xsd#cdxs_A200220PenobscotMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A200220PenobscotMember" xlink:to="lab_cdxs_A200220PenobscotMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_9fc99cf7-69fc-46a0-986c-faba110fd2d4_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Inventory Components</link:label>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_21647851-8301-4484-aca1-ea7636368208_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest and penalties recognized on the balance sheet</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NestecLtd.NestleHealthSciencesMember_c36effb1-e80f-42cc-b36e-0c94c6aa9e52_terseLabel_en-US" xlink:label="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nestec Ltd. (Nestle Health Sciences)</link:label>
    <link:label id="lab_cdxs_NestecLtd.NestleHealthSciencesMember_label_en-US" xlink:label="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nestec Ltd. (Nestle Health Sciences) [Member]</link:label>
    <link:label id="lab_cdxs_NestecLtd.NestleHealthSciencesMember_documentation_en-US" xlink:label="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Nestec Ltd. (Nestle Health Sciences) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:href="cdxs-20241231.xsd#cdxs_NestecLtd.NestleHealthSciencesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:to="lab_cdxs_NestecLtd.NestleHealthSciencesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:to="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_5fd83167-e49e-42df-ba1a-425e984cf379_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated performance goal achievement rate</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_ac22eb11-62c5-418b-acee-ba229c9c2859_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capital Stock</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing, How MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing, How MNPI Considered [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:to="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_9f6772f6-2443-4f4a-aa6b-929099997a0a_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_label_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialInstrumentAxis" xlink:to="lab_us-gaap_FinancialInstrumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_070a6c6b-280e-48b3-a689-8b48a74bf856_verboseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Segment, Geographical and Other Revenue Information</link:label>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_454c3658-74ca-438b-985a-714d5b35b775_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockMember_0233a531-4ec1-4bd2-a2e1-29d575488237_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted Stock</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_17b20a32-3d36-4b00-9584-4a7806412e9e_verboseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">RSAs</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockMember" xlink:to="lab_us-gaap_RestrictedStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndTitle_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title</link:label>
    <link:label id="lab_ecd_TrdArrIndTitle_label_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Individual Title</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndTitle" xlink:to="lab_ecd_TrdArrIndTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_603cf001-39e2-4301-88d6-782938109f3f_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration period of options upon employee's termination of service</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_86812482-c9eb-404c-9a25-5f520635bc51_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Loss Before Income Taxes, Domestic and Foreign</link:label>
    <link:label id="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_099b9622-da82-46d5-987b-03fa6be77729_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance at beginning of year</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_076c53f9-0373-4752-b54f-f16edc577445_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance at end of year</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_19242487-757c-4f9e-aa1e-4ddb8403f63b_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_label_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode" xlink:to="lab_dei_CityAreaCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_76f5fe81-8ae5-4402-83c6-beb0ce3ef556_verboseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorLocation_a3f058f6-a3dc-4c84-8dfc-0711d7da61a8_terseLabel_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Location</link:label>
    <link:label id="lab_dei_AuditorLocation_label_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Location</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorLocation" xlink:to="lab_dei_AuditorLocation" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:to="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireShortTermInvestments_13b559d2-a53e-4e5f-a86f-9e77665f6aa2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireShortTermInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Purchases of short-term investments</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireShortTermInvestments_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Short-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireShortTermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireShortTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireShortTermInvestments" xlink:to="lab_us-gaap_PaymentsToAcquireShortTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_0f7a963d-c64d-4c91-97c0-0c633ea7d91b_terseLabel_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity securities without readily determinable fair value (in shares)</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_label_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_documentation_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:to="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_97f4fbe4-fa9e-4c80-bc60-9502b2ba9a38_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other-than-temporary impairment losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Unrealized Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebtNoncurrent_b7b1df73-95f7-456b-b716-c9b416918a30_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermDebtNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term debt</link:label>
    <link:label id="lab_us-gaap_LongTermDebtNoncurrent_label_en-US" xlink:label="lab_us-gaap_LongTermDebtNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Excluding Current Maturities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebtNoncurrent" xlink:to="lab_us-gaap_LongTermDebtNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_2fcbf89e-961b-4520-9b7c-f9fe15d2752b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted Average Grant Date Fair Value Per Share</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_226b3e51-5ca7-4581-9cf0-a8665bf446a9_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract" xlink:to="lab_us-gaap_EarningsPerShareAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityAbstract_5265fd2b-9c12-4cd8-8f63-5186d720f155_terseLabel_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_EquityAbstract_label_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract" xlink:to="lab_us-gaap_EquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_1bba073d-6a34-4a74-b268-18749fd8c1e5_verboseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accumulated deficit</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfStockDomain_c0249cd1-fb7a-4c18-8dad-e51073c2b93a_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Domain]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockDomain_label_en-US" xlink:label="lab_us-gaap_ClassOfStockDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockDomain" xlink:to="lab_us-gaap_ClassOfStockDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_c8a26345-a338-459c-a6d6-f75ea3afe13f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forfeited/Expired (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_1c024713-fc15-4827-9b2d-7556dece7633_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Arrangement, Contract to Perform for Others, Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:to="lab_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerMember_bce62e85-844d-4af2-8c81-849c8a7852dd_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer Benchmark</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerMember_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerMember" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_e55022e3-7698-44d8-ab61-566892938985_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_b00dcc4d-8651-44d6-8db2-f4d2d8ba6d20_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain on non-marketable securities ($0, $0, and ($208) from a related party)</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_6302b9ee-ff55-4fe2-9aa4-bc0d9c47efd6_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain on non-marketable securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities, FV-NI, Unrealized Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:to="lab_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_9e96579d-8c42-4575-b543-981f3638a2cb_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_label_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Maturity, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:to="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_fee889f1-f96f-4ea4-827d-bbb88afec9c4_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent annual receivable increase</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Contingent Annual Receivable Increase</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Contingent Annual Receivable Increase</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentAnnualReceivableIncrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:to="lab_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_terseLabel_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Available</link:label>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_label_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Securities Aggregate Available Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:to="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjsMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjsMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="lab_ecd_EqtyAwrdsAdjsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_7ac4ca0f-29e9-47d2-8259-da0f9a9a1a08_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease obligations</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_89cf4290-b3e5-441b-b345-a2510640fef3_periodStartLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance, lease obligations - operating leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_6b1b3f64-a604-4b6d-8b5d-525bc32fa3ca_periodEndLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance, lease obligations - operating leases, net</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_138aa3b9-4265-49aa-80a2-6360936cf477_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Lease obligations</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability" xlink:to="lab_us-gaap_OperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SeriesCAndC1PreferredStockMember_69a936e5-75fc-41e9-bef2-2c71e660ff1d_terseLabel_en-US" xlink:label="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Series C And C-1 Preferred Stock</link:label>
    <link:label id="lab_cdxs_SeriesCAndC1PreferredStockMember_label_en-US" xlink:label="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Series C And C-1 Preferred Stock [Member]</link:label>
    <link:label id="lab_cdxs_SeriesCAndC1PreferredStockMember_documentation_en-US" xlink:label="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Series C And C-1 Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesCAndC1PreferredStockMember" xlink:href="cdxs-20241231.xsd#cdxs_SeriesCAndC1PreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SeriesCAndC1PreferredStockMember" xlink:to="lab_cdxs_SeriesCAndC1PreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_terseLabel_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Underlying Securities</link:label>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_label_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Underlying Securities Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:to="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PerformanceSharesMember_e8aa6e28-bcbc-4fba-953e-53490531e929_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PBOs</link:label>
    <link:label id="lab_us-gaap_PerformanceSharesMember_label_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PerformanceSharesMember" xlink:to="lab_us-gaap_PerformanceSharesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount_21a65cca-49e4-481f-9bf4-10980e5a075a_terseLabel_en-US" xlink:label="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Collaborative arrangement, upfront fee amount</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount_label_en-US" xlink:label="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement, Upfront Fee Amount</link:label>
    <link:label id="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount_documentation_en-US" xlink:label="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement, Upfront Fee Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:href="cdxs-20241231.xsd#cdxs_CollaborativeArrangementUpfrontFeeAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:to="lab_cdxs_CollaborativeArrangementUpfrontFeeAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_cab5c7b6-db78-4b5f-b2b9-bd8ec5834899_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_label_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag" xlink:to="lab_dei_AmendmentFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_terseLabel_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Appreciation Rights (SARs)</link:label>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_label_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Appreciation Rights (SARs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:to="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtDisclosureTextBlock_db9cb408-fc95-426f-aa26-deb1cef6258d_terseLabel_en-US" xlink:label="lab_us-gaap_DebtDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt</link:label>
    <link:label id="lab_us-gaap_DebtDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_DebtDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtDisclosureTextBlock" xlink:to="lab_us-gaap_DebtDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses_b727f2e7-3445-45e7-a900-e681a96e764b_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain/loss</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Unrealized Currency Losses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses" xlink:to="lab_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_c76ebb97-da50-49fd-8428-d74de9a60638_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, performance goals achieved, superior level, shares eligible to vest, multiplier</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f03c7901-b75c-4508-9e61-a5e57b3a6180_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Fair Value Hierarchy [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RecoveryOfErrCompDisclosureLineItems_label_en-US" xlink:label="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Recovery of Erroneously Awarded Compensation Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentFaceAmount_4f6fba79-560a-4491-b8bf-0e608f5449bc_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentFaceAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Face value of debt</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentFaceAmount_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentFaceAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Face Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentFaceAmount" xlink:to="lab_us-gaap_DebtInstrumentFaceAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressPostalZipCode_914fe1f3-131d-422f-afa6-e3ae3ad65b30_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode" xlink:to="lab_dei_EntityAddressPostalZipCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TypeOfArrangementAxis_8a7ac280-f85d-491f-9d18-a31129965132_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfArrangementAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Type of Arrangement and Non-arrangement Transactions [Axis]</link:label>
    <link:label id="lab_us-gaap_TypeOfArrangementAxis_label_en-US" xlink:label="lab_us-gaap_TypeOfArrangementAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfArrangementAxis" xlink:to="lab_us-gaap_TypeOfArrangementAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingExpense_d8be93ca-036c-4c1d-aa23-1f10cab32a05_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising expense</link:label>
    <link:label id="lab_us-gaap_AdvertisingExpense_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense" xlink:to="lab_us-gaap_AdvertisingExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionContingentReceivable_4f4dbe07-b682-4426-bd0b-5cc46b04e1c6_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent receivable</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentReceivable_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Contingent Receivable</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentReceivable_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Contingent Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionContingentReceivable" xlink:to="lab_cdxs_RevenueRecognitionContingentReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentTable_95494bd6-9001-4d58-871c-677c9b857067_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term Purchase Commitment [Table]</link:label>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentTable_label_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Purchase Commitment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable" xlink:to="lab_us-gaap_LongTermPurchaseCommitmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_62f82b4d-e304-4f69-ac4a-2242874162ea_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled receivables, not billable</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unbilled Receivables, Not Billable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:to="lab_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent_e250a050-8bae-4f32-a68a-f9928ad4a8d7_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted cash and investments, noncurrent</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash and Investments, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndInvestmentsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:to="lab_us-gaap_RestrictedCashAndInvestmentsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_c71ea2cd-c435-431e-a3f5-162101355c87_verboseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_3fadb247-50a6-4b78-a62f-2cba0e7ef7dc_netLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2009/role/netLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_b42e743c-527c-477c-8567-48469e44a946_terseLabel_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Owned Not Readily Marketable, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_label_en-US" xlink:label="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Owned Not Readily Marketable, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:to="lab_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GranteeStatusAxis_780edaca-9e98-4b85-bea9-9e504eeae76d_terseLabel_en-US" xlink:label="lab_us-gaap_GranteeStatusAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Grantee Status [Axis]</link:label>
    <link:label id="lab_us-gaap_GranteeStatusAxis_label_en-US" xlink:label="lab_us-gaap_GranteeStatusAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Grantee Status [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GranteeStatusAxis" xlink:to="lab_us-gaap_GranteeStatusAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_f09ef989-195c-46cb-a082-953e274d8bed_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingent annual payments, term</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Contingent Annual Payments, Term</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Contingent Annual Payments, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentAnnualPaymentsTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:to="lab_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember_terseLabel_en-US" xlink:label="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested</link:label>
    <link:label id="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember_label_en-US" xlink:label="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:to="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorName_4e6eb19f-fa0d-4815-822d-a7910b79c58e_terseLabel_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Name</link:label>
    <link:label id="lab_dei_AuditorName_label_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorName" xlink:to="lab_dei_AuditorName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_0110f368-3ed9-4a8a-9504-3570e994cb66_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nonemployee Awards</link:label>
    <link:label id="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonemployee [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:to="lab_us-gaap_ShareBasedPaymentArrangementNonemployeeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_b8d9a25a-b51a-4333-996a-57321fcd65a7_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forfeited/Expired (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryRawMaterials_5d526df0-0944-4ccb-98a9-4c0b138018cc_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterials" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Raw materials</link:label>
    <link:label id="lab_us-gaap_InventoryRawMaterials_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterials" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Raw Materials, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterials" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterials"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterials" xlink:to="lab_us-gaap_InventoryRawMaterials" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_ce56f75d-2c6d-4c92-b14c-c39815cb4440_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current provision:</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_30093364-54d4-49b2-ad5d-087fa4431ab0_terseLabel_en-US" xlink:label="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue recognized from transactions</link:label>
    <link:label id="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_label_en-US" xlink:label="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nonmonetary Transaction, Gross Operating Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:to="lab_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember_terseLabel_en-US" xlink:label="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested</link:label>
    <link:label id="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember_label_en-US" xlink:label="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:to="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockCompensationPlanMember_c0fb920b-824e-4776-a4e9-2d83065de6e9_terseLabel_en-US" xlink:label="lab_us-gaap_StockCompensationPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares issuable under the Equity Incentive Plans and ESPP</link:label>
    <link:label id="lab_us-gaap_StockCompensationPlanMember_label_en-US" xlink:label="lab_us-gaap_StockCompensationPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockCompensationPlanMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockCompensationPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockCompensationPlanMember" xlink:to="lab_us-gaap_StockCompensationPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_426f1528-3ad3-44c9-ba93-029f39bff864_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated useful life</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a7d4ce3c-9213-4732-b938-b285cfab6a13_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockMember_9f7af5cd-674b-48ee-ba38-e7e4c5c6106a_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ESPP</link:label>
    <link:label id="lab_us-gaap_EmployeeStockMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockMember" xlink:to="lab_us-gaap_EmployeeStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_9071b6d0-b04d-4617-82f6-d3be144419f8_verboseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromStockPlans_75af8294-daad-4aa3-97cf-6114259cef76_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromStockPlans" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from issuance of stock under employee stock purchase plan</link:label>
    <link:label id="lab_us-gaap_ProceedsFromStockPlans_label_en-US" xlink:label="lab_us-gaap_ProceedsFromStockPlans" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Plans</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockPlans" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockPlans"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromStockPlans" xlink:to="lab_us-gaap_ProceedsFromStockPlans" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment To PEO Compensation, Footnote</link:label>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment To PEO Compensation, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToPeoCompFnTextBlock" xlink:to="lab_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsDeferredIncome_ae7687c4-2ae9-4aa9-91ba-0f39d05439b3_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenues</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsDeferredIncome_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Deferred Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsDeferredIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:to="lab_us-gaap_DeferredTaxAssetsDeferredIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInFinanceReceivables_08763b2f-91df-43a7-8b0a-d53e65fefe16_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Financial assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInFinanceReceivables_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Finance Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInFinanceReceivables"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:to="lab_us-gaap_IncreaseDecreaseInFinanceReceivables" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Other Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Other Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_ea7739a2-aad4-474e-b44a-66df76e4be2b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock, Class of Stock [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock, Class of Stock [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable" xlink:to="lab_us-gaap_ScheduleOfStockByClassTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year</link:label>
    <link:label id="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember_label_en-US" xlink:label="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:to="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Assets_e1aee2a4-66d9-4b8c-aad1-c169c055ec1e_totalLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets</link:label>
    <link:label id="lab_us-gaap_Assets_label_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets" xlink:to="lab_us-gaap_Assets" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_dc423892-c6ea-48fd-9b47-8c77289e2157_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Line Items]</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_label_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss and Tax Credit Carryforwards [Line Items]</link:label>
    <link:label id="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_documentation_en-US" xlink:label="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">[Line Items] for Operating Loss and Tax Credit Carryforwards [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:to="lab_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_8b8cebec-d6f1-47e2-bcb7-fdcc6f07a4d6_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cost of product revenue</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Goods and Services Sold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_b03e111b-7d3c-4640-bc6c-c8322515c6d5_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising</link:label>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Cost [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_661184ff-6bc5-4df2-b775-b90dc94af887_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash reconciliation:</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:to="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_300ca4d3-2dee-4ce7-9f99-7f7781793311_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchase of property and equipment</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_2ef5ea0e-dc37-4313-80f5-85ed39bdd356_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Other long-term liabilities</link:label>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Liabilities, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:to="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_bb7463a3-9622-41ea-862f-967498d1f256_verboseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Commitments and contingencies (Note 13)</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies" xlink:to="lab_us-gaap_CommitmentsAndContingencies" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_c2405983-a46b-4138-83e1-edfa75e265ef_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_94e9d2ba-d231-4eab-8bfc-4c26a1edcf38_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Reconciliation of Provision for Income Taxes Calculated at the Statutory Rate to Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrTerminationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Termination Date</link:label>
    <link:label id="lab_ecd_TrdArrTerminationDate_label_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Termination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrTerminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrTerminationDate" xlink:to="lab_ecd_TrdArrTerminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments_c043c5af-9324-4f20-b158-4844c8258cee_terseLabel_en-US" xlink:label="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of discount on short-term investments</link:label>
    <link:label id="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments_label_en-US" xlink:label="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization Of Discount On Short-term Investments</link:label>
    <link:label id="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments_documentation_en-US" xlink:label="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amortization Of Discount On Short-term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AmortizationOfDiscountOnShortTermInvestments" xlink:href="cdxs-20241231.xsd#cdxs_AmortizationOfDiscountOnShortTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AmortizationOfDiscountOnShortTermInvestments" xlink:to="lab_cdxs_AmortizationOfDiscountOnShortTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NatureOfOperations_a1836ee0-3991-49db-a40b-aff7d9dbf79f_verboseLabel_en-US" xlink:label="lab_us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Description of Business</link:label>
    <link:label id="lab_us-gaap_NatureOfOperations_label_en-US" xlink:label="lab_us-gaap_NatureOfOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nature of Operations [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NatureOfOperations" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NatureOfOperations" xlink:to="lab_us-gaap_NatureOfOperations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b7c2a54a-02c9-4fae-b076-2c57347aebb2_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_33c12709-d57a-4a1c-9284-dead23a5234b_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_6a98d678-4cd2-460f-bdfb-00236f928b98_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Maturity, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:to="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_24af4ce3-1705-41a9-8282-7e6959d41c6c_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:to="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_95611623-fc8e-4ab7-b45d-d92ed5822dfc_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock issued during period, shares, issued for services (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Shares, Issued for Services</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentAxis_5725d17e-42bb-43df-8013-c39f66a3e991_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentAxis_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentAxis" xlink:to="lab_us-gaap_DebtInstrumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_cbb72bee-f2b9-4e80-8cdb-fafc8dbe1c11_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from maturity of short-term investments</link:label>
    <link:label id="lab_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_label_en-US" xlink:label="lab_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Maturities, Prepayments and Calls of Short-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:to="lab_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetIncomeLoss_170cd6b0-67df-4fd1-82a5-8d0ff47cace5_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net loss</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_02259465-1e11-43f0-b538-973afa0ec587_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Loss</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Income (Loss) Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss" xlink:to="lab_us-gaap_NetIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrAxis_terseLabel_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Arrangement:</link:label>
    <link:label id="lab_ecd_TradingArrAxis_label_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrAxis" xlink:to="lab_ecd_TradingArrAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure, Table</link:label>
    <link:label id="lab_ecd_PvpTableTextBlock_label_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTableTextBlock" xlink:to="lab_ecd_PvpTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PerformanceStockUnitsMember_a1acd0c7-d267-40ec-970a-7ded3de79385_terseLabel_en-US" xlink:label="lab_cdxs_PerformanceStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PSUs</link:label>
    <link:label id="lab_cdxs_PerformanceStockUnitsMember_label_en-US" xlink:label="lab_cdxs_PerformanceStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Stock Units [Member]</link:label>
    <link:label id="lab_cdxs_PerformanceStockUnitsMember_documentation_en-US" xlink:label="lab_cdxs_PerformanceStockUnitsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Performance Stock Units</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PerformanceStockUnitsMember" xlink:to="lab_cdxs_PerformanceStockUnitsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_4ca0c23e-c121-4418-a14b-0e8a502629b7_terseLabel_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current borrowing capacity</link:label>
    <link:label id="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_label_en-US" xlink:label="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Current Borrowing Capacity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:to="lab_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Excluding Value Reported in Compensation Table</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFileNumber_fed26f18-53b2-4898-88a4-151ca16f49c6_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_label_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber" xlink:to="lab_dei_EntityFileNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_ab322d35-502a-4ffe-8217-f5bc5c3a83ca_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract" xlink:to="lab_us-gaap_IncomeStatementAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_c37c431b-b1dd-4ad3-8a56-de2570123fd2_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1" xlink:to="lab_dei_EntityAddressAddressLine1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_23e2e5c9-67cb-4097-9ea3-98a7b4469a4e_terseLabel_en-US" xlink:label="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:label id="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryIndName" xlink:to="lab_ecd_ForgoneRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_ae7ae030-8101-41fa-8fb4-ece44f997c51_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate intrinsic value, exercisable options</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_005344f4-7708-46f5-b195-4e374243e2b2_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average remaining lease term (in years)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_0f54b520-5753-49d3-811b-12eb97287982_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:label id="lab_us-gaap_LossContingencyNatureDomain_label_en-US" xlink:label="lab_us-gaap_LossContingencyNatureDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyNatureDomain" xlink:to="lab_us-gaap_LossContingencyNatureDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_e39ebef9-5a2c-4239-979c-d84149155953_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term Investments and Investment in Non-Marketable Equity Securities</link:label>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentPolicyTextBlock" xlink:to="lab_us-gaap_InvestmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Considered [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:to="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_InnovatusLoanMember_3228eb34-5ffb-48e4-9bd9-6c26bdcb83fc_terseLabel_en-US" xlink:label="lab_cdxs_InnovatusLoanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Innovatus Loan</link:label>
    <link:label id="lab_cdxs_InnovatusLoanMember_label_en-US" xlink:label="lab_cdxs_InnovatusLoanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Innovatus Loan [Member]</link:label>
    <link:label id="lab_cdxs_InnovatusLoanMember_documentation_en-US" xlink:label="lab_cdxs_InnovatusLoanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Innovatus Loan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanMember" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_InnovatusLoanMember" xlink:to="lab_cdxs_InnovatusLoanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_630d9671-67e0-48dd-85fc-43520bd8c44e_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reductions to tax position of prior years</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingAggtErrCompAmt" xlink:to="lab_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_label_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoActuallyPaidCompAmt" xlink:to="lab_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MilestoneTwoMember_4cad82a3-002f-4102-a27e-a61c259f6c51_terseLabel_en-US" xlink:label="lab_cdxs_MilestoneTwoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Milestone Two</link:label>
    <link:label id="lab_cdxs_MilestoneTwoMember_label_en-US" xlink:label="lab_cdxs_MilestoneTwoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Milestone Two [Member]</link:label>
    <link:label id="lab_cdxs_MilestoneTwoMember_documentation_en-US" xlink:label="lab_cdxs_MilestoneTwoMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Milestone Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember" xlink:href="cdxs-20241231.xsd#cdxs_MilestoneTwoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MilestoneTwoMember" xlink:to="lab_cdxs_MilestoneTwoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAxis_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation:</link:label>
    <link:label id="lab_ecd_AdjToCompAxis_label_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="lab_ecd_AdjToCompAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableMember_effa2d3b-470a-4595-83eb-548efded48d1_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableMember_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableMember" xlink:to="lab_us-gaap_AccountsReceivableMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent_51c8472b-e43d-4367-b013-2cf743f9785f_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted cash</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash and Cash Equivalents, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LaboratoryEquipmentMember_e1bdb9c5-b91b-4a71-8b2f-5b97fe480bfa_terseLabel_en-US" xlink:label="lab_cdxs_LaboratoryEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Laboratory equipment</link:label>
    <link:label id="lab_cdxs_LaboratoryEquipmentMember_label_en-US" xlink:label="lab_cdxs_LaboratoryEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Laboratory Equipment [Member]</link:label>
    <link:label id="lab_cdxs_LaboratoryEquipmentMember_documentation_en-US" xlink:label="lab_cdxs_LaboratoryEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Laboratory Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LaboratoryEquipmentMember" xlink:href="cdxs-20241231.xsd#cdxs_LaboratoryEquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LaboratoryEquipmentMember" xlink:to="lab_cdxs_LaboratoryEquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_5c1c496b-3c7c-44e9-85e1-e5c4b03d53b5_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive income</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalents_7cd600d3-fa22-43eb-bf57-801ed7322a11_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted cash, current and non-current</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalents_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalents" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnAdjsSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_PnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Adjustments Service Cost</link:label>
    <link:label id="lab_ecd_PnsnAdjsSvcCstMember_label_en-US" xlink:label="lab_ecd_PnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Adjustments Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnAdjsSvcCstMember" xlink:to="lab_ecd_PnsnAdjsSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOfLeasehold_066ecd90-f6c0-4ad8-902f-b3b5ac1a676a_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfLeasehold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of leasehold</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfLeasehold_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfLeasehold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment of Leasehold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfLeasehold" xlink:to="lab_us-gaap_ImpairmentOfLeasehold" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AcquisitionAgreementMember_d1ffe3da-9e5b-4a81-91a8-cfd91cb75b20_terseLabel_en-US" xlink:label="lab_cdxs_AcquisitionAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Acquisition Agreement</link:label>
    <link:label id="lab_cdxs_AcquisitionAgreementMember_label_en-US" xlink:label="lab_cdxs_AcquisitionAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition Agreement [Member]</link:label>
    <link:label id="lab_cdxs_AcquisitionAgreementMember_documentation_en-US" xlink:label="lab_cdxs_AcquisitionAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Acquisition Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AcquisitionAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_AcquisitionAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AcquisitionAgreementMember" xlink:to="lab_cdxs_AcquisitionAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_668eb91a-5b08-4926-a988-0e4a1cbc893d_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party [Axis]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related and Nonrelated Parties [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="lab_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_871bd8de-a4b5-488f-8be8-2871a8b68f32_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Weighted average common stock shares used in computing net loss per share, basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Price or TSR Estimation Method</link:label>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_label_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Price or TSR Estimation Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:to="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseLiabilityRollForward_b686a26f-aaed-40e8-8234-0d48e4641879_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseLiabilityRollForward_label_en-US" xlink:label="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseLiabilityRollForward_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseLiabilityRollForward" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseLiabilityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward" xlink:to="lab_cdxs_OperatingLeaseLiabilityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_e0426fb4-0710-4a5f-8a23-ecdb43c6646d_terseLabel_en-US" xlink:label="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Components of Deferred Tax Assets and Liabilities [Abstract]</link:label>
    <link:label id="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Components of Deferred Tax Assets and Liabilities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="lab_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived_2ec6357e-dbb0-4088-9887-107b87c385a9_terseLabel_en-US" xlink:label="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">MAI agreement milestone payment received</link:label>
    <link:label id="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived_label_en-US" xlink:label="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction, Milestone Payment Received</link:label>
    <link:label id="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived_documentation_en-US" xlink:label="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related Party Transaction, Milestone Payment Received</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:href="cdxs-20241231.xsd#cdxs_RelatedPartyTransactionMilestonePaymentReceived"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:to="lab_cdxs_RelatedPartyTransactionMilestonePaymentReceived" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:to="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConstructionInProgressMember_849b5f5f-cc50-4982-b9d9-63e687d0ca20_terseLabel_en-US" xlink:label="lab_us-gaap_ConstructionInProgressMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Construction in progress</link:label>
    <link:label id="lab_us-gaap_ConstructionInProgressMember_label_en-US" xlink:label="lab_us-gaap_ConstructionInProgressMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Construction in Progress [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConstructionInProgressMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConstructionInProgressMember" xlink:to="lab_us-gaap_ConstructionInProgressMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_18b38166-ba5c-4b25-a15c-b8294fe1e4df_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Benchmark</link:label>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember" xlink:to="lab_us-gaap_SalesRevenueNetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFilerCategory_ceb21706-e733-4230-98e8-7c1f0a86e134_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:label id="lab_dei_EntityFilerCategory_label_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory" xlink:to="lab_dei_EntityFilerCategory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense_aba16a33-b0c2-4d3c-b1cc-6986421ea19b_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment charges related to contract assets</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:to="lab_us-gaap_ContractWithCustomerAssetCreditLossExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligation_76365b31-366d-4a3e-ac0a-c05a25425aa1_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance obligation</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligation_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligation" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_f09a2183-c2ec-4e67-aa1f-5e794d0b65a5_terseLabel_en-US" xlink:label="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Executive compensation</link:label>
    <link:label id="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_label_en-US" xlink:label="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation</link:label>
    <link:label id="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_documentation_en-US" xlink:label="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:href="cdxs-20241231.xsd#cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:to="lab_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWorkInProcess_e2dd3467-d2d7-4f18-a337-a8a26d611297_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcess" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Work in process</link:label>
    <link:label id="lab_us-gaap_InventoryWorkInProcess_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcess" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Work in Process, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcess" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcess"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcess" xlink:to="lab_us-gaap_InventoryWorkInProcess" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeMember_31c019ad-d0d5-4ae7-bd24-1a484629d657_terseLabel_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Range [Domain]</link:label>
    <link:label id="lab_srt_RangeMember_label_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember" xlink:to="lab_srt_RangeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_dc06a2d8-892d-4839-8656-7d99107a71bb_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerEMember_fee04b60-074a-43ca-b1b5-db28e8118595_terseLabel_en-US" xlink:label="lab_cdxs_CustomerEMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer E</link:label>
    <link:label id="lab_cdxs_CustomerEMember_label_en-US" xlink:label="lab_cdxs_CustomerEMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer E [Member]</link:label>
    <link:label id="lab_cdxs_CustomerEMember_documentation_en-US" xlink:label="lab_cdxs_CustomerEMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer E</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerEMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerEMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerEMember" xlink:to="lab_cdxs_CustomerEMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseCostTableTextBlock_1bb0c41f-788e-44e8-9404-37e3a9db0c02_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseCostTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Lease Cost</link:label>
    <link:label id="lab_us-gaap_LeaseCostTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LeaseCostTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCostTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCostTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseCostTableTextBlock" xlink:to="lab_us-gaap_LeaseCostTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SitagliptinEnzymeMember_4c94e0f6-9e90-4075-b1de-1ad2db7fa85d_terseLabel_en-US" xlink:label="lab_cdxs_SitagliptinEnzymeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sitagliptin Enzyme</link:label>
    <link:label id="lab_cdxs_SitagliptinEnzymeMember_label_en-US" xlink:label="lab_cdxs_SitagliptinEnzymeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sitagliptin Enzyme [Member]</link:label>
    <link:label id="lab_cdxs_SitagliptinEnzymeMember_documentation_en-US" xlink:label="lab_cdxs_SitagliptinEnzymeMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sitagliptin Enzyme</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SitagliptinEnzymeMember" xlink:href="cdxs-20241231.xsd#cdxs_SitagliptinEnzymeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SitagliptinEnzymeMember" xlink:to="lab_cdxs_SitagliptinEnzymeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RocheMember_7319331b-21b4-4a16-9ab1-3e1945c0929e_terseLabel_en-US" xlink:label="lab_cdxs_RocheMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Roche</link:label>
    <link:label id="lab_cdxs_RocheMember_label_en-US" xlink:label="lab_cdxs_RocheMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Roche [Member]</link:label>
    <link:label id="lab_cdxs_RocheMember_documentation_en-US" xlink:label="lab_cdxs_RocheMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Roche</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RocheMember" xlink:href="cdxs-20241231.xsd#cdxs_RocheMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RocheMember" xlink:to="lab_cdxs_RocheMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CashDepositMember_362fb750-532d-4f89-a8da-b2d09d6bae98_terseLabel_en-US" xlink:label="lab_cdxs_CashDepositMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash Deposit</link:label>
    <link:label id="lab_cdxs_CashDepositMember_label_en-US" xlink:label="lab_cdxs_CashDepositMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Deposit [Member]</link:label>
    <link:label id="lab_cdxs_CashDepositMember_documentation_en-US" xlink:label="lab_cdxs_CashDepositMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cash Deposit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashDepositMember" xlink:href="cdxs-20241231.xsd#cdxs_CashDepositMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CashDepositMember" xlink:to="lab_cdxs_CashDepositMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_9de4ba87-42e2-4512-b745-f5f8df0dbecd_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized tax benefits that would impact effective tax rate</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllTradingArrangementsMember_terseLabel_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Trading Arrangements</link:label>
    <link:label id="lab_ecd_AllTradingArrangementsMember_label_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Trading Arrangements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="lab_ecd_AllTradingArrangementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Net Income</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Net Income [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_5c3816b3-f640-4f02-8762-22d4cebecca0_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting period of units granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAmount_a5a8fe39-3df5-4977-9275-e0b4756cc448_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax credits, amount</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAmount_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardAmount" xlink:to="lab_us-gaap_TaxCreditCarryforwardAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:to="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_cd110b9e-9beb-4e85-b7ca-da1ce6d2635e_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Taxes Paid, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaidNet" xlink:to="lab_us-gaap_IncomeTaxesPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_7fe06842-0ef7-49f7-bac4-c52ded47d315_terseLabel_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Office equipment and furniture</link:label>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_39c95414-fd72-4a19-9e3e-588b50465b83_verboseLabel_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Office furniture and equipment</link:label>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_label_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Office Equipment and Furniture [Member]</link:label>
    <link:label id="lab_cdxs_OfficeEquipmentAndFurnitureMember_documentation_en-US" xlink:label="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Office Equipment and Furniture [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember" xlink:href="cdxs-20241231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OfficeEquipmentAndFurnitureMember" xlink:to="lab_cdxs_OfficeEquipmentAndFurnitureMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PayVsPerformanceDisclosureLineItems_label_en-US" xlink:label="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:to="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_dcbe6ceb-dced-4dd2-b880-975e98dcee60_terseLabel_en-US" xlink:label="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentrations of Supply Risk</link:label>
    <link:label id="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_label_en-US" xlink:label="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Supply Risk [Policy Text Block]</link:label>
    <link:label id="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_documentation_en-US" xlink:label="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Concentration Risk, Supply Risk [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:href="cdxs-20241231.xsd#cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:to="lab_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_cc0329d5-6f32-427e-8e09-afdcbca8391b_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:label id="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_label_en-US" xlink:label="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="lab_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_989c60d1-c739-4eba-8ee4-7d1ad41f6246_totalLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total revenues</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsAndOtherNoncurrentAssets_4d7093e7-7e98-4270-9af3-28e1d7afa8c2_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsAndOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment in non-marketable equity securities</link:label>
    <link:label id="lab_us-gaap_InvestmentsAndOtherNoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_InvestmentsAndOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments and Other Noncurrent Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsAndOtherNoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsAndOtherNoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsAndOtherNoncurrentAssets" xlink:to="lab_us-gaap_InvestmentsAndOtherNoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_3528b86a-a9bf-4381-aae9-d7ededa55a0f_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred benefit:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring and Related Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_label_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OtherPerfMeasureAmt" xlink:to="lab_ecd_OtherPerfMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_b199bb06-1599-419d-a82a-28ff170a0c14_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding" xlink:to="lab_us-gaap_CommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RSUsAndRSAsMember_1d04767b-045c-47b2-802d-c1504b325a64_terseLabel_en-US" xlink:label="lab_cdxs_RSUsAndRSAsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">RSUs and RSAs</link:label>
    <link:label id="lab_cdxs_RSUsAndRSAsMember_label_en-US" xlink:label="lab_cdxs_RSUsAndRSAsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">RSUs And RSAs [Member]</link:label>
    <link:label id="lab_cdxs_RSUsAndRSAsMember_documentation_en-US" xlink:label="lab_cdxs_RSUsAndRSAsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">RSUs And RSAs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember" xlink:href="cdxs-20241231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RSUsAndRSAsMember" xlink:to="lab_cdxs_RSUsAndRSAsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentsIncorporatedByReferenceTextBlock_f967cfa2-5389-42d8-be75-59ce696a29ce_terseLabel_en-US" xlink:label="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Documents Incorporated by Reference</link:label>
    <link:label id="lab_dei_DocumentsIncorporatedByReferenceTextBlock_label_en-US" xlink:label="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Documents Incorporated by Reference [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentsIncorporatedByReferenceTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:to="lab_dei_DocumentsIncorporatedByReferenceTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseCost_86a81f71-fb38-4e60-aad4-7cca426f4b71_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease cost</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseCost_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseCost" xlink:to="lab_us-gaap_OperatingLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightAxis_ae324c2a-f9a8-4f7e-b08f-0d7a07a25872_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Warrant or Right [Axis]</link:label>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightAxis_label_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Warrant or Right [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfWarrantOrRightAxis" xlink:to="lab_us-gaap_ClassOfWarrantOrRightAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_cb6a19f4-e31c-4066-b602-640b90ddcc3d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total shares remaining available for issuance (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_034d63c1-8399-472c-92ef-872e85a4f968_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term lease obligations - Operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CommonStockWarrantsMember_b44bd461-6d9c-45cc-9087-cd187d9026bd_terseLabel_en-US" xlink:label="lab_cdxs_CommonStockWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock Warrants</link:label>
    <link:label id="lab_cdxs_CommonStockWarrantsMember_label_en-US" xlink:label="lab_cdxs_CommonStockWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock Warrants [Member]</link:label>
    <link:label id="lab_cdxs_CommonStockWarrantsMember_documentation_en-US" xlink:label="lab_cdxs_CommonStockWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Common Stock Warrants</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommonStockWarrantsMember" xlink:href="cdxs-20241231.xsd#cdxs_CommonStockWarrantsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CommonStockWarrantsMember" xlink:to="lab_cdxs_CommonStockWarrantsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_df6ac4ba-de86-4e5b-9bca-e962fe365fca_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_5d0753bc-0c27-4798-a198-92e76902814c_terseLabel_en-US" xlink:label="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Convertible preferred stock, shares issued upon conversion (in shares)</link:label>
    <link:label id="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_label_en-US" xlink:label="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Convertible Preferred Stock, Shares Issued upon Conversion</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:to="lab_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_6acec755-c82f-40d0-b00a-056154538724_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber" xlink:to="lab_dei_EntityTaxIdentificationNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDebtInstrumentsTextBlock_6d3df4bc-a337-4ee8-9246-8606244189a6_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Long-Term Debt Instruments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDebtInstrumentsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Long-Term Debt Instruments [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:to="lab_us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_823cfd62-b4fc-4b52-85be-a351a99cc134_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additions to tax position of prior years</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_322af8d7-bd0d-4479-a563-094f5e490a43_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Foreign Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MoneyMarketFundsMember_a27bd3fe-76c7-4300-8291-20d2138a6134_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Money market funds</link:label>
    <link:label id="lab_us-gaap_MoneyMarketFundsMember_label_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Money Market Funds [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MoneyMarketFundsMember" xlink:to="lab_us-gaap_MoneyMarketFundsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember_18bef515-e86a-4573-ada4-988dc8a0d72d_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general and administrative</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expenses [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_134d8e9c-2279-4ae3-a7e7-509105bb00c2_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in the period:</link:label>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_label_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Contract with Customer, Liability [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:to="lab_us-gaap_ChangeInContractWithCustomerLiabilityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_cec910ba-f7db-4c49-99e1-9d4a729fe44e_terseLabel_en-US" xlink:label="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from public offering</link:label>
    <link:label id="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_label_en-US" xlink:label="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale of Stock, Consideration Received on Transaction</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockConsiderationReceivedOnTransaction"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:to="lab_us-gaap_SaleOfStockConsiderationReceivedOnTransaction" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_39652c0b-db15-4549-871c-21db3c4c1b53_terseLabel_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">U.S. treasury securities</link:label>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_label_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">US Treasury Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasurySecuritiesMember" xlink:to="lab_us-gaap_USTreasurySecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameAxis_6d5a57e2-7422-4530-894b-52aeb3f5f9c1_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:label id="lab_us-gaap_PlanNameAxis_label_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameAxis" xlink:to="lab_us-gaap_PlanNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_33e7ee89-f12d-41a6-859f-d75c1ef0345f_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis" xlink:to="lab_us-gaap_StatementEquityComponentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_db1f0fb2-c9a5-4a97-b7de-a27f179aac15_terseLabel_en-US" xlink:label="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Term of collaborative research and development agreement</link:label>
    <link:label id="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_label_en-US" xlink:label="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Term of Collaborative Research and Development Agreement</link:label>
    <link:label id="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_documentation_en-US" xlink:label="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Term of collaborative research and development agreement.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:href="cdxs-20241231.xsd#cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:to="lab_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsCurrent_668067a3-5372-4c05-8b9e-e0452f754017_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets, current</link:label>
    <link:label id="lab_us-gaap_OtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsCurrent" xlink:to="lab_us-gaap_OtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpensePolicy_aa1f47c3-7532-4ec4-be80-6e432e5db207_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development Expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpensePolicy_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_9ee90f7c-4eb0-46c6-b17f-246cfbdaa88b_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NumberOfProgramPlans_e3bc43ae-8931-4b03-a6c8-10c8a486b9bb_terseLabel_en-US" xlink:label="lab_cdxs_NumberOfProgramPlans" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of program plans</link:label>
    <link:label id="lab_cdxs_NumberOfProgramPlans_label_en-US" xlink:label="lab_cdxs_NumberOfProgramPlans" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number Of Program Plans</link:label>
    <link:label id="lab_cdxs_NumberOfProgramPlans_documentation_en-US" xlink:label="lab_cdxs_NumberOfProgramPlans" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number Of Program Plans</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfProgramPlans" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfProgramPlans"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NumberOfProgramPlans" xlink:to="lab_cdxs_NumberOfProgramPlans" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CantorMember_e9a3295e-3fa7-4cef-b014-e6113674777d_terseLabel_en-US" xlink:label="lab_cdxs_CantorMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cantor</link:label>
    <link:label id="lab_cdxs_CantorMember_label_en-US" xlink:label="lab_cdxs_CantorMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cantor [Member]</link:label>
    <link:label id="lab_cdxs_CantorMember_documentation_en-US" xlink:label="lab_cdxs_CantorMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cantor</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CantorMember" xlink:href="cdxs-20241231.xsd#cdxs_CantorMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CantorMember" xlink:to="lab_cdxs_CantorMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueProductLineMember_dff3ed27-9292-4768-b00f-5f728b10630e_terseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueProductLineMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Product and Service Benchmark</link:label>
    <link:label id="lab_us-gaap_SalesRevenueProductLineMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueProductLineMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Product and Service Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueProductLineMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueProductLineMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueProductLineMember" xlink:to="lab_us-gaap_SalesRevenueProductLineMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesOther_db87cdec-82aa-4464-9e48-6004b9f8013b_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock upon release of stock awards (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesOther_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Shares, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostsAndExpenses_0dd75106-fce3-40e0-953b-519df8d47cfc_totalLabel_en-US" xlink:label="lab_us-gaap_CostsAndExpenses" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total costs and operating expenses</link:label>
    <link:label id="lab_us-gaap_CostsAndExpenses_label_en-US" xlink:label="lab_us-gaap_CostsAndExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Costs and Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAndExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostsAndExpenses" xlink:to="lab_us-gaap_CostsAndExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DeferredTaxAssetsLeaseLiability_38e6a2fc-3588-4f11-b5df-3781ce3aff40_terseLabel_en-US" xlink:label="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease liability</link:label>
    <link:label id="lab_cdxs_DeferredTaxAssetsLeaseLiability_label_en-US" xlink:label="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Lease Liability</link:label>
    <link:label id="lab_cdxs_DeferredTaxAssetsLeaseLiability_documentation_en-US" xlink:label="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Lease Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxAssetsLeaseLiability" xlink:href="cdxs-20241231.xsd#cdxs_DeferredTaxAssetsLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DeferredTaxAssetsLeaseLiability" xlink:to="lab_cdxs_DeferredTaxAssetsLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetGrossCurrent_23700065-a4dd-4765-abf4-1d8685df4c9b_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract assets</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetGrossCurrent_073f12c6-480d-4e1f-a99e-c391cd55562d_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Contract assets</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetGrossCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset, before Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:to="lab_us-gaap_ContractWithCustomerAssetGrossCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReceivableTypeDomain_aae2f1ac-d671-4a5c-bfb0-81c4d4e5d729_terseLabel_en-US" xlink:label="lab_us-gaap_ReceivableTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Receivable [Domain]</link:label>
    <link:label id="lab_us-gaap_ReceivableTypeDomain_label_en-US" xlink:label="lab_us-gaap_ReceivableTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivable [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReceivableTypeDomain" xlink:to="lab_us-gaap_ReceivableTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_3e6ae9ea-5db0-482d-b0a2-10ba8c2829fc_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate intrinsic value, outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration_e4814292-faea-4e74-ab7b-1c9bb9adb1d2_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment, Variable Interest Rate, Type [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration_label_en-US" xlink:label="lab_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment, Variable Interest Rate, Type [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration" xlink:to="lab_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementGeographicalAxis_c8dc9a41-98dd-4a6e-b985-690e723d44fa_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:label id="lab_srt_StatementGeographicalAxis_label_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementGeographicalAxis" xlink:to="lab_srt_StatementGeographicalAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_3f6371b5-6521-4556-8291-9c5070c3b931_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent_c26dc766-a4b7-450c-a5fe-19f7b329980f_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accruals for expenses related to indemnification issues</link:label>
    <link:label id="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent_label_en-US" xlink:label="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Accrual, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:to="lab_us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_2762f1ac-d819-49c8-9756-ea0232a02aa5_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (decrease) in deferred tax asset valuation allowance</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:to="lab_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EMEAMember_730722f8-362f-4a65-a45b-8cf36a51b7c5_verboseLabel_en-US" xlink:label="lab_us-gaap_EMEAMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">EMEA [Member]</link:label>
    <link:label id="lab_us-gaap_EMEAMember_b3a78d3c-d0a9-4900-afed-d797dc92a002_terseLabel_en-US" xlink:label="lab_us-gaap_EMEAMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">EMEA</link:label>
    <link:label id="lab_us-gaap_EMEAMember_label_en-US" xlink:label="lab_us-gaap_EMEAMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">EMEA [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EMEAMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EMEAMember" xlink:to="lab_us-gaap_EMEAMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentExitFeePercent_ae235c9e-0892-42f4-a8ad-b0c0163753ac_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentExitFeePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, exit fee, percent</link:label>
    <link:label id="lab_cdxs_DebtInstrumentExitFeePercent_label_en-US" xlink:label="lab_cdxs_DebtInstrumentExitFeePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Exit Fee, Percent</link:label>
    <link:label id="lab_cdxs_DebtInstrumentExitFeePercent_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentExitFeePercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Exit Fee, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentExitFeePercent" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentExitFeePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentExitFeePercent" xlink:to="lab_cdxs_DebtInstrumentExitFeePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table</link:label>
    <link:label id="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:to="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_b09a9406-1fcf-4035-9b0b-effa19dfb00c_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of warrant or right, number of securities called by warrants or rights (in shares)</link:label>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_label_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Warrant or Right, Number of Securities Called by Warrants or Rights</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:to="lab_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_78b5dc80-5adc-4781-a381-59f8dc574a61_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under employee stock purchase plan (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Shares, Employee Stock Purchase Plans</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_3ccabf4a-b611-4d9b-b4ab-b8eeea6e52aa_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash, cash equivalents and restricted cash at the beginning of the year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_253e4832-5a9c-4d88-9cf9-a2a5da8cc418_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash, cash equivalents and restricted cash at the end of the year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_deb57e99-fbd9-46ce-9f66-3e625d324a27_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total cash, cash equivalents and restricted cash at the end of the period</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_4af47196-b759-45b4-9169-c13fb28b7f1c_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based payment arrangement, nonvested award, cost not yet recognized, amount</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_cc2efa29-99e7-432f-bc58-2052865330a3_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Foreign Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_dc97aac0-8756-45c3-b999-ac7ab6dbc4f7_verboseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract" xlink:to="lab_us-gaap_AssetsCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_7c665f52-f923-4332-bb34-e7d7798ebdf3_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MerckMember_56866df8-a5a0-4db7-9055-9d1f17fc7820_terseLabel_en-US" xlink:label="lab_cdxs_MerckMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Merck</link:label>
    <link:label id="lab_cdxs_MerckMember_label_en-US" xlink:label="lab_cdxs_MerckMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Merck [Member]</link:label>
    <link:label id="lab_cdxs_MerckMember_documentation_en-US" xlink:label="lab_cdxs_MerckMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Merck [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember" xlink:href="cdxs-20241231.xsd#cdxs_MerckMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MerckMember" xlink:to="lab_cdxs_MerckMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShippingAndDistributionCost_3c4c25b1-1b77-49cc-b449-8a987e4d81a4_terseLabel_en-US" xlink:label="lab_cdxs_ShippingAndDistributionCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shipping and distribution cost</link:label>
    <link:label id="lab_cdxs_ShippingAndDistributionCost_label_en-US" xlink:label="lab_cdxs_ShippingAndDistributionCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shipping And Distribution Cost</link:label>
    <link:label id="lab_cdxs_ShippingAndDistributionCost_documentation_en-US" xlink:label="lab_cdxs_ShippingAndDistributionCost" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Shipping And Distribution Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShippingAndDistributionCost" xlink:href="cdxs-20241231.xsd#cdxs_ShippingAndDistributionCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShippingAndDistributionCost" xlink:to="lab_cdxs_ShippingAndDistributionCost" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_b9238e32-8b6a-42a1-be5d-b765b835a1c9_terseLabel_en-US" xlink:label="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance obligations satisfied from new activities in the period - contract revenue</link:label>
    <link:label id="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_label_en-US" xlink:label="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition</link:label>
    <link:label id="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_documentation_en-US" xlink:label="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:href="cdxs-20241231.xsd#cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:to="lab_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductsAndServicesDomain_d08f44dc-3fef-41d2-b6fa-304a1fc634d1_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:label id="lab_srt_ProductsAndServicesDomain_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain" xlink:to="lab_srt_ProductsAndServicesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShortTermLeaseCost_1c7b2da6-4930-4b59-879b-3561df03f40e_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermLeaseCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term lease costs</link:label>
    <link:label id="lab_us-gaap_ShortTermLeaseCost_label_en-US" xlink:label="lab_us-gaap_ShortTermLeaseCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-Term Lease, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermLeaseCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermLeaseCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermLeaseCost" xlink:to="lab_us-gaap_ShortTermLeaseCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_e632ee80-c559-44d7-ba6a-9bd1c66eddf7_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillRollForward_8dc2d13e-079e-414c-9b6b-90c8463f83e4_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_GoodwillRollForward_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward" xlink:to="lab_us-gaap_GoodwillRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_599f3cff-a014-464f-833a-77c7fa7dcb9c_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_697317c5-6cb1-4c27-a5ce-d6445cb8da34_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesOutstanding" xlink:to="lab_us-gaap_PreferredStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerSalesMilestone_c15daa15-fb07-46a1-8970-efeec9f3515b_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate commercial sales, milestone</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerSalesMilestone_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Sales Milestone</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerSalesMilestone_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Sales Milestone</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerSalesMilestone" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerSalesMilestone"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerSalesMilestone" xlink:to="lab_cdxs_ContractWithCustomerSalesMilestone" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EarlyRepaymentFeePercentage_306bb4a0-940f-4f06-b46f-1b0049ba23b2_terseLabel_en-US" xlink:label="lab_cdxs_EarlyRepaymentFeePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Early repayment fee, percentage</link:label>
    <link:label id="lab_cdxs_EarlyRepaymentFeePercentage_label_en-US" xlink:label="lab_cdxs_EarlyRepaymentFeePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Early Repayment Fee, Percentage</link:label>
    <link:label id="lab_cdxs_EarlyRepaymentFeePercentage_documentation_en-US" xlink:label="lab_cdxs_EarlyRepaymentFeePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Early Repayment Fee, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EarlyRepaymentFeePercentage" xlink:href="cdxs-20241231.xsd#cdxs_EarlyRepaymentFeePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EarlyRepaymentFeePercentage" xlink:to="lab_cdxs_EarlyRepaymentFeePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WarrantMember_e7dbceac-dd68-469e-a0e3-7d2f83343fde_terseLabel_en-US" xlink:label="lab_us-gaap_WarrantMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Warrants</link:label>
    <link:label id="lab_us-gaap_WarrantMember_label_en-US" xlink:label="lab_us-gaap_WarrantMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Warrant [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WarrantMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WarrantMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WarrantMember" xlink:to="lab_us-gaap_WarrantMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_SecurityExchangeName_61a7b742-f112-4d44-9986-2a016d2a20ff_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_label_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName" xlink:to="lab_dei_SecurityExchangeName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_ba2262cd-f7c2-4314-987a-0b4afaed9243_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basis spread on variable rate</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Basis Spread on Variable Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="lab_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022PSUAnd2022PBOMember_45985363-1b6f-43ce-9a02-c6bcf4c0f56a_terseLabel_en-US" xlink:label="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022 PSU And 2022 PBO</link:label>
    <link:label id="lab_cdxs_A2022PSUAnd2022PBOMember_label_en-US" xlink:label="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022 PSU And 2022 PBO [Member]</link:label>
    <link:label id="lab_cdxs_A2022PSUAnd2022PBOMember_documentation_en-US" xlink:label="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2022 PSU And 2022 PBO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUAnd2022PBOMember" xlink:href="cdxs-20241231.xsd#cdxs_A2022PSUAnd2022PBOMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022PSUAnd2022PBOMember" xlink:to="lab_cdxs_A2022PSUAnd2022PBOMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionDomain_a651fdf8-be6a-4c5c-b85f-e6e3596aa573_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Domain]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyTransactionDomain_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transaction [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain" xlink:to="lab_us-gaap_RelatedPartyTransactionDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_4564b19a-b2b4-4929-8281-85964fe76f17_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Long-lived Assets by Geographical Area</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:to="lab_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_5b44d9ed-fa19-4bcb-bbdb-f2ec3d6315d8_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_80b3365d-960d-481e-a701-999e33a55e75_terseLabel_en-US" xlink:label="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Noncash or part noncash acquisition, noncash financial or equity instrument consideration, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_label_en-US" xlink:label="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncash or Part Noncash Acquisition, Noncash Financial or Equity Instrument Consideration, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:to="lab_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseContractualTermDomain_2b8c2b2b-7a23-4c6d-a36f-34827b0ce59c_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseContractualTermDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease Contractual Term [Domain]</link:label>
    <link:label id="lab_us-gaap_LeaseContractualTermDomain_label_en-US" xlink:label="lab_us-gaap_LeaseContractualTermDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease Contractual Term [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseContractualTermDomain" xlink:to="lab_us-gaap_LeaseContractualTermDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_57d16417-5bac-4ead-8789-8eafeab550b4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherNoncashIncome_206d0e34-2675-4a0b-b5a2-9bf44a03a651_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherNoncashIncome" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Equity securities earned from research and development activities ($0, $0, and ($1,245) from a related party)</link:label>
    <link:label id="lab_us-gaap_OtherNoncashIncome_9959c5e2-4f6e-49f4-96b6-15c9452da666_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNoncashIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other noncash income</link:label>
    <link:label id="lab_us-gaap_OtherNoncashIncome_label_en-US" xlink:label="lab_us-gaap_OtherNoncashIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Noncash Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNoncashIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNoncashIncome" xlink:to="lab_us-gaap_OtherNoncashIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_c9871f83-c522-40b4-8ebf-128db24c18a9_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current State and Local Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:to="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_d5c3de15-085c-46ce-ac23-c0f0c975ccda_verboseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Research and development</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EnzymeProductMember_0d4b4b6b-0926-4ecb-a5b5-3bac0eb0e3ca_terseLabel_en-US" xlink:label="lab_cdxs_EnzymeProductMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Enzyme Product</link:label>
    <link:label id="lab_cdxs_EnzymeProductMember_label_en-US" xlink:label="lab_cdxs_EnzymeProductMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Enzyme Product [Member]</link:label>
    <link:label id="lab_cdxs_EnzymeProductMember_documentation_en-US" xlink:label="lab_cdxs_EnzymeProductMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Enzyme Product</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeProductMember" xlink:href="cdxs-20241231.xsd#cdxs_EnzymeProductMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EnzymeProductMember" xlink:to="lab_cdxs_EnzymeProductMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NovelBiotherapeuticsMember_a348fbe8-def7-46b0-ae2e-9b24f4479e87_terseLabel_en-US" xlink:label="lab_cdxs_NovelBiotherapeuticsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Novel Biotherapeutics</link:label>
    <link:label id="lab_cdxs_NovelBiotherapeuticsMember_label_en-US" xlink:label="lab_cdxs_NovelBiotherapeuticsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Novel Biotherapeutics [Member]</link:label>
    <link:label id="lab_cdxs_NovelBiotherapeuticsMember_documentation_en-US" xlink:label="lab_cdxs_NovelBiotherapeuticsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Novel Biotherapeutics [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember" xlink:href="cdxs-20241231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NovelBiotherapeuticsMember" xlink:to="lab_cdxs_NovelBiotherapeuticsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_708610c0-bc00-4ab0-be5f-e84d60fe59f0_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued" xlink:to="lab_us-gaap_CommonStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityDomain_19b31133-691b-4128-b36e-baa2f6c5afa6_terseLabel_en-US" xlink:label="lab_dei_EntityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:label id="lab_dei_EntityDomain_label_en-US" xlink:label="lab_dei_EntityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityDomain" xlink:to="lab_dei_EntityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_cc84f1d6-f99d-4c33-be3c-28c32cf87509_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration risk, percentage</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_9ba12c5d-bfd0-487c-873a-70cd6eba0107_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Concentration risk, percentage</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NotesReceivableGross_f842f3a4-8412-4be9-ae65-c8f9e365c96e_totalLabel_en-US" xlink:label="lab_us-gaap_NotesReceivableGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total financial assets</link:label>
    <link:label id="lab_us-gaap_NotesReceivableGross_label_en-US" xlink:label="lab_us-gaap_NotesReceivableGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financing Receivable, before Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesReceivableGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NotesReceivableGross" xlink:to="lab_us-gaap_NotesReceivableGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComputerEquipmentMember_e4b14eff-9f67-480c-a8de-c743ff093594_terseLabel_en-US" xlink:label="lab_us-gaap_ComputerEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer equipment</link:label>
    <link:label id="lab_us-gaap_ComputerEquipmentMember_label_en-US" xlink:label="lab_us-gaap_ComputerEquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computer Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerEquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComputerEquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComputerEquipmentMember" xlink:to="lab_us-gaap_ComputerEquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OtherInformationAbstract_c3b2009b-ff9f-4c67-a39f-ed6ad1431484_terseLabel_en-US" xlink:label="lab_cdxs_OtherInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other information:</link:label>
    <link:label id="lab_cdxs_OtherInformationAbstract_label_en-US" xlink:label="lab_cdxs_OtherInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Information [Abstract]</link:label>
    <link:label id="lab_cdxs_OtherInformationAbstract_documentation_en-US" xlink:label="lab_cdxs_OtherInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OtherInformationAbstract" xlink:href="cdxs-20241231.xsd#cdxs_OtherInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OtherInformationAbstract" xlink:to="lab_cdxs_OtherInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:to="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_59db1453-e9cc-454e-b57f-88bdcdb8b8ee_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less: accumulated depreciation</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Cash_169704ca-bf83-4455-936a-2e3a8d434304_terseLabel_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:label id="lab_us-gaap_Cash_label_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Cash" xlink:to="lab_us-gaap_Cash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_ed6065cd-b7d9-42ad-bcbd-fccb47462209_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized" xlink:to="lab_us-gaap_CommonStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_14b450db-e54d-43ef-8950-333790c02280_terseLabel_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Milestone payments received (in shares)</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_label_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</link:label>
    <link:label id="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_documentation_en-US" xlink:label="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:to="lab_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_28ca8dfd-da7d-4e50-b4a5-c29b909abe4b_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investments in Non-Marketable Securities</link:label>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:to="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_bfd6619d-9b8a-4709-bab8-3c3ad854853d_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Goodwill and Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:to="lab_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongtermDebtTypeAxis_767d02b2-b4e5-4488-860c-6e61b58cc238_terseLabel_en-US" xlink:label="lab_us-gaap_LongtermDebtTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_LongtermDebtTypeAxis_label_en-US" xlink:label="lab_us-gaap_LongtermDebtTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongtermDebtTypeAxis" xlink:to="lab_us-gaap_LongtermDebtTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DemandDepositsMember_191ad02b-d890-4696-ab42-79d5fb1069aa_terseLabel_en-US" xlink:label="lab_us-gaap_DemandDepositsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Demand deposits</link:label>
    <link:label id="lab_us-gaap_DemandDepositsMember_label_en-US" xlink:label="lab_us-gaap_DemandDepositsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Demand Deposits [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DemandDepositsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DemandDepositsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DemandDepositsMember" xlink:to="lab_us-gaap_DemandDepositsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityVoluntaryFilers_8a7e2e5d-afab-47c3-8f3f-16147eb62cd2_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:label id="lab_dei_EntityVoluntaryFilers_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers" xlink:to="lab_dei_EntityVoluntaryFilers" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyMember_6f21fb6d-fada-4238-84f9-10659c7d77b2_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party</link:label>
    <link:label id="lab_us-gaap_RelatedPartyMember_label_en-US" xlink:label="lab_us-gaap_RelatedPartyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyMember" xlink:to="lab_us-gaap_RelatedPartyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRenewalTerm_1e4d4161-0897-4771-a759-152014128f72_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Renewal term</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseRenewalTerm_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Renewal Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="lab_us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A501ChesapeakeMember_c132ed24-07f9-46d0-ade5-c7bdb26b92df_terseLabel_en-US" xlink:label="lab_cdxs_A501ChesapeakeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">501 Chesapeake</link:label>
    <link:label id="lab_cdxs_A501ChesapeakeMember_label_en-US" xlink:label="lab_cdxs_A501ChesapeakeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">501 Chesapeake [Member]</link:label>
    <link:label id="lab_cdxs_A501ChesapeakeMember_documentation_en-US" xlink:label="lab_cdxs_A501ChesapeakeMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">501 Chesapeake</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A501ChesapeakeMember" xlink:href="cdxs-20241231.xsd#cdxs_A501ChesapeakeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A501ChesapeakeMember" xlink:to="lab_cdxs_A501ChesapeakeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsLineItems_bc2d1db3-0d95-4ad9-a3e6-8adea7d82cc1_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Line Items]</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsLineItems_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems" xlink:to="lab_us-gaap_CashAndCashEquivalentsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_eac1c20c-29b5-4059-80aa-f972205070a0_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position Location, Balance [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationAxis" xlink:to="lab_us-gaap_BalanceSheetLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_2b7c1de1-0761-4172-b514-c485807621bf_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total deferred benefit</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfShortTermInvestments_db3cc079-2a04-4d87-88dd-0db798133cce_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from sale of short-term investments</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfShortTermInvestments_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Short-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfShortTermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfShortTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfShortTermInvestments" xlink:to="lab_us-gaap_ProceedsFromSaleOfShortTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_7db30270-d8f1-4f08-b5d3-107886086591_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other comprehensive loss</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_4e055e47-ce6c-4db9-b755-0896eb1d0150_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_c062ee07-5241-40e1-bd51-6f7ef66d16d2_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_917b491b-b955-4f43-81b1-8a0ac17372a6_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_9fc08edd-91ce-47ad-9def-98e8f74fdca5_verboseLabel_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Asset impairment and other charges</link:label>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_bd2888bb-8fef-43fd-926a-a8b898b3459a_terseLabel_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset impairment and other charges</link:label>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_label_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Impairment Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetImpairmentCharges" xlink:to="lab_us-gaap_AssetImpairmentCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebt_58fa7afc-245c-41f2-8b4b-2f1997da603a_totalLabel_en-US" xlink:label="lab_us-gaap_LongTermDebt" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total long-term debt</link:label>
    <link:label id="lab_us-gaap_LongTermDebt_label_en-US" xlink:label="lab_us-gaap_LongTermDebt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebt" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebt" xlink:to="lab_us-gaap_LongTermDebt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnAdjsPrrSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Adjustments Prior Service Cost</link:label>
    <link:label id="lab_ecd_PnsnAdjsPrrSvcCstMember_label_en-US" xlink:label="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Adjustments Prior Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsPrrSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:to="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_StrategicCollaborationAgreementMember_8ba95da5-350d-490c-9f05-9739e940fa65_terseLabel_en-US" xlink:label="lab_cdxs_StrategicCollaborationAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Strategic Collaboration Agreement</link:label>
    <link:label id="lab_cdxs_StrategicCollaborationAgreementMember_label_en-US" xlink:label="lab_cdxs_StrategicCollaborationAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Strategic Collaboration Agreement [Member]</link:label>
    <link:label id="lab_cdxs_StrategicCollaborationAgreementMember_documentation_en-US" xlink:label="lab_cdxs_StrategicCollaborationAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Strategic Collaboration Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_StrategicCollaborationAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_StrategicCollaborationAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_StrategicCollaborationAgreementMember" xlink:to="lab_cdxs_StrategicCollaborationAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableGrossCurrent_ecc0f46e-6bc2-4e07-9802-bdabb90e2fbe_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableGrossCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableGrossCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, before Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableGrossCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableGrossCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableGrossCurrent" xlink:to="lab_us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashCurrent_6e12561b-ad44-49b9-bbca-52460d492b7a_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current restricted cash</link:label>
    <link:label id="lab_us-gaap_RestrictedCashCurrent_label_en-US" xlink:label="lab_us-gaap_RestrictedCashCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Cash, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashCurrent" xlink:to="lab_us-gaap_RestrictedCashCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommercialPaperMember_fbeef59d-249a-4ac8-9a9b-17605f23d8c3_terseLabel_en-US" xlink:label="lab_us-gaap_CommercialPaperMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commercial paper</link:label>
    <link:label id="lab_us-gaap_CommercialPaperMember_label_en-US" xlink:label="lab_us-gaap_CommercialPaperMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commercial Paper [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommercialPaperMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommercialPaperMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommercialPaperMember" xlink:to="lab_us-gaap_CommercialPaperMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnBnftsAdjFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Benefits Adjustments, Footnote</link:label>
    <link:label id="lab_ecd_PnsnBnftsAdjFnTextBlock_label_en-US" xlink:label="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Benefits Adjustments, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnBnftsAdjFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:to="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Vs Peer Group</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Vs Peer Group [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:to="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentAnnualReport_c30d2cf7-db73-4e99-8ccc-a9eb94d6148d_terseLabel_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:label id="lab_dei_DocumentAnnualReport_label_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentAnnualReport" xlink:to="lab_dei_DocumentAnnualReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_df457dd5-e641-4ccf-845e-043859afd1fc_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Vested (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_96c382a9-0c3f-4ccd-a345-1b719f1d17a2_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Risk-free interest rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiability_e3ac8913-d97a-4f57-bd60-d912d08343c0_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract liabilities: deferred revenue</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiability" xlink:to="lab_us-gaap_ContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MAIAgreementMember_9872ff61-fb7c-4ac6-b17a-6a929d63b792_terseLabel_en-US" xlink:label="lab_cdxs_MAIAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">MAI Agreement</link:label>
    <link:label id="lab_cdxs_MAIAgreementMember_label_en-US" xlink:label="lab_cdxs_MAIAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">MAI Agreement [Member]</link:label>
    <link:label id="lab_cdxs_MAIAgreementMember_documentation_en-US" xlink:label="lab_cdxs_MAIAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">MAI Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MAIAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_MAIAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MAIAgreementMember" xlink:to="lab_cdxs_MAIAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_f09b9b93-f265-461e-80e3-4fe3b53e4bb9_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract" xlink:to="lab_us-gaap_AccountingPoliciesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenuesAbstract_292bf6d4-8e09-45d8-aac6-785ce75bdde5_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenuesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenues:</link:label>
    <link:label id="lab_us-gaap_RevenuesAbstract_5e7171ef-9fc6-45e2-959c-df11294a0f3d_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenues [Abstract]</link:label>
    <link:label id="lab_us-gaap_RevenuesAbstract_label_en-US" xlink:label="lab_us-gaap_RevenuesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenues [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesAbstract" xlink:to="lab_us-gaap_RevenuesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentUnamortizedDiscount_976b6145-7fe8-4644-a72d-4ae00d0d8f6a_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentUnamortizedDiscount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, unamortized discount</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentUnamortizedDiscount_ef4053b3-cede-4d33-b591-387e546fde40_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentUnamortizedDiscount" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less: unamortized debt issuance fee</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentUnamortizedDiscount_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentUnamortizedDiscount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Unamortized Discount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentUnamortizedDiscount" xlink:to="lab_us-gaap_DebtInstrumentUnamortizedDiscount" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TermLoanMember_808d57da-55fc-4354-a40b-d1888f670eae_terseLabel_en-US" xlink:label="lab_cdxs_TermLoanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Term Loan</link:label>
    <link:label id="lab_cdxs_TermLoanMember_label_en-US" xlink:label="lab_cdxs_TermLoanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:label id="lab_cdxs_TermLoanMember_documentation_en-US" xlink:label="lab_cdxs_TermLoanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember" xlink:href="cdxs-20241231.xsd#cdxs_TermLoanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TermLoanMember" xlink:to="lab_cdxs_TermLoanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_224b8261-2aef-4a72-a3ea-f2d74566a098_terseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leasehold improvements</link:label>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember" xlink:to="lab_us-gaap_LeaseholdImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NumberOfBusinessSegments_becda87c-b991-42c5-84f7-6bfdf620fac2_terseLabel_en-US" xlink:label="lab_cdxs_NumberOfBusinessSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of business segments</link:label>
    <link:label id="lab_cdxs_NumberOfBusinessSegments_label_en-US" xlink:label="lab_cdxs_NumberOfBusinessSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number Of Business Segments</link:label>
    <link:label id="lab_cdxs_NumberOfBusinessSegments_documentation_en-US" xlink:label="lab_cdxs_NumberOfBusinessSegments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number Of Business Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfBusinessSegments" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfBusinessSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NumberOfBusinessSegments" xlink:to="lab_cdxs_NumberOfBusinessSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_9a088989-e655-4eef-86cc-9e746f1a43a1_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate" xlink:to="lab_dei_CurrentFiscalYearEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_baa50927-fe96-4670-80fa-2f44ec10ea84_verboseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Less: imputed interest</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Undiscounted Excess Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShortTermInvestments_bb70fbb3-9850-4c1b-a660-bf3fd3a85c69_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term investments</link:label>
    <link:label id="lab_us-gaap_ShortTermInvestments_label_en-US" xlink:label="lab_us-gaap_ShortTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermInvestments" xlink:to="lab_us-gaap_ShortTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoName_terseLabel_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Name</link:label>
    <link:label id="lab_ecd_PeoName_label_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoName" xlink:to="lab_ecd_PeoName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_cd784d68-14ce-48e6-89d3-1725eaa6e9d4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, shares issued in period</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VestingAxis_e958d6ef-79cf-4c5a-8556-209c0e93df2f_terseLabel_en-US" xlink:label="lab_us-gaap_VestingAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting [Axis]</link:label>
    <link:label id="lab_us-gaap_VestingAxis_label_en-US" xlink:label="lab_us-gaap_VestingAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vesting [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VestingAxis" xlink:to="lab_us-gaap_VestingAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_499fe9ed-6e52-4a9c-a862-ad60a21cc97e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Award [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_f0bd82e7-16be-4d4e-96c8-34ddf4141c39_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_f850f79b-b44b-4d82-8c96-51ed8f8fe220_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, write-off due to lease modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_bcb63e04-55f3-4b42-9789-f1b114a2bbb0_negatedTerseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Addition due to lease modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_label_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Write-off Due To Lease Modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Write-off Due To Lease Modification</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:to="lab_cdxs_OperatingLeaseWriteOffDueToLeaseModification" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoMember_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO</link:label>
    <link:label id="lab_ecd_NonPeoNeoMember_label_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoMember" xlink:to="lab_ecd_NonPeoNeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_ba94403b-6166-4a77-bc53-a25ae045aabe_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NumberOfOtherFormerExecutive_938a9e41-b3c5-4db7-9a85-d6ee0bd7b649_terseLabel_en-US" xlink:label="lab_cdxs_NumberOfOtherFormerExecutive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of other former executive</link:label>
    <link:label id="lab_cdxs_NumberOfOtherFormerExecutive_label_en-US" xlink:label="lab_cdxs_NumberOfOtherFormerExecutive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number Of Other Former Executive</link:label>
    <link:label id="lab_cdxs_NumberOfOtherFormerExecutive_documentation_en-US" xlink:label="lab_cdxs_NumberOfOtherFormerExecutive" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number Of Other Former Executive</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfOtherFormerExecutive" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfOtherFormerExecutive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NumberOfOtherFormerExecutive" xlink:to="lab_cdxs_NumberOfOtherFormerExecutive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_42135bf9-aaf2-4b48-bd8f-39b063b46911_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">401(k) Plan</link:label>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:to="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_59f7dbe6-3bbf-4037-8029-df405f38fb0d_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_label_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockLineItems" xlink:to="lab_us-gaap_ClassOfStockLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_eca93c40-f99a-4c28-8ca0-1e869698b7c2_verboseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounting Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_6fab067b-2921-480c-bdbe-a679b2022097_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled receivables</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unbilled Receivables, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesCurrent" xlink:to="lab_us-gaap_UnbilledReceivablesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SeriesAPreferredStockMember_c223869a-2dbb-449c-bd87-51f5b7d7868b_terseLabel_en-US" xlink:label="lab_us-gaap_SeriesAPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Series A Preferred Stock</link:label>
    <link:label id="lab_us-gaap_SeriesAPreferredStockMember_label_en-US" xlink:label="lab_us-gaap_SeriesAPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Series A Preferred Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SeriesAPreferredStockMember" xlink:to="lab_us-gaap_SeriesAPreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_a2789431-f248-401e-a57f-c95e518f839e_terseLabel_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementClassOfStockAxis_label_en-US" xlink:label="lab_us-gaap_StatementClassOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementClassOfStockAxis" xlink:to="lab_us-gaap_StatementClassOfStockAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentAbstract_7ba24603-5c74-486f-a9b4-4e1e294ffe83_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development [Abstract]</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentAbstract_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentAbstract" xlink:to="lab_us-gaap_ResearchAndDevelopmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_b1540c4a-c137-4365-905f-94d5eb5ef82d_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reduction in the carrying amount of right-of-use assets</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_b953dbda-0105-4235-8a8a-c98afb37576f_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Amortization of right-of-use assets</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset, Periodic Reduction</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureName_terseLabel_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_MeasureName_label_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureName" xlink:to="lab_ecd_MeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_501d7514-d3d5-4b0a-8715-c3d355da514b_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_label_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityInteractiveDataCurrent" xlink:to="lab_dei_EntityInteractiveDataCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_7d7f5705-e92e-4403-9923-a58957555248_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_label_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfRestructuringDomain" xlink:to="lab_us-gaap_TypeOfRestructuringDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_country_CH_cda64b5f-6ced-446d-a723-f5c1724b9090_terseLabel_en-US" xlink:label="lab_country_CH" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SWITZERLAND</link:label>
    <link:label id="lab_country_CH_label_en-US" xlink:label="lab_country_CH" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SWITZERLAND</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_CH" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CH"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_CH" xlink:to="lab_country_CH" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_InnovatusLoanWarrantsMember_594dc733-cd9b-49b2-91ee-34f6b0cc1ffb_terseLabel_en-US" xlink:label="lab_cdxs_InnovatusLoanWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Innovatus Loan Warrants</link:label>
    <link:label id="lab_cdxs_InnovatusLoanWarrantsMember_label_en-US" xlink:label="lab_cdxs_InnovatusLoanWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Innovatus Loan Warrants [Member]</link:label>
    <link:label id="lab_cdxs_InnovatusLoanWarrantsMember_documentation_en-US" xlink:label="lab_cdxs_InnovatusLoanWarrantsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Innovatus Loan Warrants</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanWarrantsMember" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanWarrantsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_InnovatusLoanWarrantsMember" xlink:to="lab_cdxs_InnovatusLoanWarrantsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_392f6a1a-b9de-4c35-9f10-55d5be222877_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeSeveranceMember_affbd74a-929b-437d-a718-0e1c5df2099d_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeSeveranceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Severance</link:label>
    <link:label id="lab_us-gaap_EmployeeSeveranceMember_label_en-US" xlink:label="lab_us-gaap_EmployeeSeveranceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Severance [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeSeveranceMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeSeveranceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeSeveranceMember" xlink:to="lab_us-gaap_EmployeeSeveranceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_country_CN_fe7679b0-aba8-4819-bfa7-34dd65886b5b_terseLabel_en-US" xlink:label="lab_country_CN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">CHINA</link:label>
    <link:label id="lab_country_CN_label_en-US" xlink:label="lab_country_CN" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">CHINA</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_CN" xlink:to="lab_country_CN" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_81bbb2e1-38d2-46a3-bd80-6ae3c0aaa501_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring and Related Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensation_bdaa8ca9-7e0a-47a6-84f7-4139799d8fba_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensation_6bef68d7-b313-422e-93a9-b896ea1dac98_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Noncash Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensation" xlink:to="lab_us-gaap_ShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_ea5ccfe1-b3ec-4947-9dca-05ed5c5ed2ef_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other (in shares)</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment_2cdf8d97-0c4b-48c0-a1fe-07482c1f3d8e_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue recognition, number of annual payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Number Of Annual Payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Number Of Annual Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionNumberOfAnnualPayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:to="lab_cdxs_RevenueRecognitionNumberOfAnnualPayment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_7ec4af28-aa42-4ac9-99ec-9deda36937ab_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tranche Two</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Tranche Two [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAwardTrancheTwoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:to="lab_us-gaap_ShareBasedCompensationAwardTrancheTwoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AccountingPoliciesLineItems_521a6ee9-9255-4bd7-9bc4-928a87760628_terseLabel_en-US" xlink:label="lab_cdxs_AccountingPoliciesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies [Line Items]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesLineItems_label_en-US" xlink:label="lab_cdxs_AccountingPoliciesLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Line Items]</link:label>
    <link:label id="lab_cdxs_AccountingPoliciesLineItems_documentation_en-US" xlink:label="lab_cdxs_AccountingPoliciesLineItems" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Accounting Policies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesLineItems" xlink:href="cdxs-20241231.xsd#cdxs_AccountingPoliciesLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AccountingPoliciesLineItems" xlink:to="lab_cdxs_AccountingPoliciesLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage_8dee16d3-3a7e-4ae2-939c-912a2e9f6f10_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stated interest rate</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest Rate, Stated Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:to="lab_us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_703e82e7-38f0-4883-b706-753c2e705ca7_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity instruments other than options, aggregate intrinsic value, vested</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued_d9bbf444-c243-496b-8116-df32de8c5e35_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock warrants in connection with debt issuance</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to Additional Paid in Capital, Warrant Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SupplementalCashFlowInformationAbstract_1f249a60-1b23-401c-8e4a-531c2f9a5089_terseLabel_en-US" xlink:label="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Supplemental disclosure of cash flow information:</link:label>
    <link:label id="lab_us-gaap_SupplementalCashFlowInformationAbstract_label_en-US" xlink:label="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supplemental Cash Flow Information [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalCashFlowInformationAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalCashFlowInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="lab_us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_3dc12eb4-8a63-4ce1-950a-53fa13c7a02a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">R&amp;D Capitalization</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset, In-Process Research and Development</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:to="lab_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_97bc1234-b74d-4491-a9e8-4ef1b1fed41a_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_a8d5d5c7-e217-4ea8-ac67-0f6284faf641_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable and Expected to Vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorFirmId_46264556-2b88-48fb-905a-7c157a588301_terseLabel_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:label id="lab_dei_AuditorFirmId_label_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorFirmId" xlink:to="lab_dei_AuditorFirmId" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_77bf52b0-d580-4f94-8a49-c5aff421faa4_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Loss from operations</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss" xlink:to="lab_us-gaap_OperatingIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentInterestPaidInKind_2f58581d-9e60-47fa-8833-33f7d0642a26_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPaidInKind" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, interest, paid in kind</link:label>
    <link:label id="lab_cdxs_DebtInstrumentInterestPaidInKind_label_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPaidInKind" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest, Paid In Kind</link:label>
    <link:label id="lab_cdxs_DebtInstrumentInterestPaidInKind_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPaidInKind" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest, Paid In Kind</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPaidInKind" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentInterestPaidInKind"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentInterestPaidInKind" xlink:to="lab_cdxs_DebtInstrumentInterestPaidInKind" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_16901965-6b03-481b-b46d-5113f4d0de3c_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in valuation allowance</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_fdd9a768-325a-4198-b695-e92bf2e38f1d_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of reportable segments</link:label>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_label_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfReportableSegments" xlink:to="lab_us-gaap_NumberOfReportableSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_ac9691a6-7b6d-437c-9557-dbe9ea596a9f_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities and stockholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:to="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_e99da0fa-50be-4744-9d36-d8b600b7a71f_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_146965c8-afb5-45bc-b70c-353efda52fd8_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, impairment loss</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:to="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentIncomeInterest_8adfe76d-cbbb-414e-8bc5-21d5aa8ebf93_verboseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeInterest" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Interest income</link:label>
    <link:label id="lab_us-gaap_InvestmentIncomeInterest_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Income, Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeInterest" xlink:to="lab_us-gaap_InvestmentIncomeInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_e530b69b-f805-4290-aa26-351d36949ca8_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, RSU Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NumberOfFormerExecutives_2fb080aa-07e5-48eb-9ddc-1446c62fbd09_terseLabel_en-US" xlink:label="lab_cdxs_NumberOfFormerExecutives" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of former executives</link:label>
    <link:label id="lab_cdxs_NumberOfFormerExecutives_label_en-US" xlink:label="lab_cdxs_NumberOfFormerExecutives" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number Of Former Executives</link:label>
    <link:label id="lab_cdxs_NumberOfFormerExecutives_documentation_en-US" xlink:label="lab_cdxs_NumberOfFormerExecutives" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number Of Former Executives</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfFormerExecutives" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfFormerExecutives"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NumberOfFormerExecutives" xlink:to="lab_cdxs_NumberOfFormerExecutives" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_a1b957d9-35c3-4ce5-9d3a-edac48dd02e0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Maturities of Long-Term Debt</link:label>
    <link:label id="lab_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Maturities of Long-Term Debt [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_d1468dfb-9a92-4064-ae2a-6b8895a0f501_verboseLabel_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Basis of Presentation and Summary of Significant Accounting Policies</link:label>
    <link:label id="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_label_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Organization, Consolidation, Basis of Presentation, Business Description and Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:to="lab_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_terseLabel_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Underlying Security Market Price Change</link:label>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_label_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Underlying Security Market Price Change, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:to="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_IndividualAxis_terseLabel_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Individual:</link:label>
    <link:label id="lab_ecd_IndividualAxis_label_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Individual [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_IndividualAxis" xlink:to="lab_ecd_IndividualAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_8d8e2cb1-f324-4cbf-97f1-4a054eb89c47_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equipment retired during period</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Disposals</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_bdb6f443-2f83-46b5-b2d4-e5e362ca0ed0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Taxes paid related to net share settlement of equity awards</link:label>
    <link:label id="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_4ecb4196-5da4-4ed6-923b-6f00d591bd12_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss)</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI Attributable to Parent [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_b3db6c9f-def1-4b36-8855-a1c52a30dbca_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with customer, liability, portion of retainer fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Portion Of Retainer Fee</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Portion Of Retainer Fee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:to="lab_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_496a03ff-a22d-4917-bb4e-47f9e0024218_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected life (years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract_59f6700c-3b12-42c7-89d8-f5e6c34a9c80_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Balance Sheet [Abstract]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Related Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="lab_us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNet_9e1a06f8-f34a-4c7b-8898-517221569e3f_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_0fcb67e0-7666-4a1e-8205-c63a89b66b99_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_label_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet" xlink:to="lab_us-gaap_InventoryNet" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductOrServiceAxis_df80bbbf-9cb8-4ec8-9e7c-295a3e7a49ee_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:label id="lab_srt_ProductOrServiceAxis_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis" xlink:to="lab_srt_ProductOrServiceAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_38a0efed-b35e-4b3a-ab1d-67c34796372e_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementLineItems_e49accfc-b475-4f9d-bde0-0b38c48d1c72_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:label id="lab_us-gaap_StatementLineItems_label_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems" xlink:to="lab_us-gaap_StatementLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2019AmendedPlanMember_840251d9-04cb-4db1-ba87-d0ba80cb58ba_terseLabel_en-US" xlink:label="lab_cdxs_A2019AmendedPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2019 Amended Plan</link:label>
    <link:label id="lab_cdxs_A2019AmendedPlanMember_label_en-US" xlink:label="lab_cdxs_A2019AmendedPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2019 Amended Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2019AmendedPlanMember_documentation_en-US" xlink:label="lab_cdxs_A2019AmendedPlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2019 Amended Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019AmendedPlanMember" xlink:href="cdxs-20241231.xsd#cdxs_A2019AmendedPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2019AmendedPlanMember" xlink:to="lab_cdxs_A2019AmendedPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentFacilityFeePercent_3bdf5616-2638-41cf-b373-0951285af7ab_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentFacilityFeePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, facility fee, percent</link:label>
    <link:label id="lab_cdxs_DebtInstrumentFacilityFeePercent_label_en-US" xlink:label="lab_cdxs_DebtInstrumentFacilityFeePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Facility Fee, Percent</link:label>
    <link:label id="lab_cdxs_DebtInstrumentFacilityFeePercent_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentFacilityFeePercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Facility Fee, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentFacilityFeePercent" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentFacilityFeePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentFacilityFeePercent" xlink:to="lab_cdxs_DebtInstrumentFacilityFeePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms_d9530ee3-75f1-447e-a41d-f20710044805_terseLabel_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payment terms</link:label>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms_label_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue From Contract With Customer, Payment Terms</link:label>
    <link:label id="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms_documentation_en-US" xlink:label="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue From Contract With Customer, Payment Terms</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:href="cdxs-20241231.xsd#cdxs_RevenueFromContractWithCustomerPaymentTerms"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:to="lab_cdxs_RevenueFromContractWithCustomerPaymentTerms" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_15c4d701-f1bd-4216-affb-84a0c7555bb4_terseLabel_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled Receivable</link:label>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_label_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade and Other Accounts Receivable, Unbilled Receivables, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:to="lab_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_cc5811e5-dc72-47f2-85db-84f24d30e86e_verboseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Estimated Ranges of Useful Lives of Property and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_d6a37a5a-9ab9-4220-be20-96c724a707a2_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Property and Equipment, Net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_1c40e3f4-26f5-4c4d-ac56-9e9428358621_terseLabel_en-US" xlink:label="lab_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Assets and Allowances</link:label>
    <link:label id="lab_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Loss, Financial Instrument [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditLossFinancialInstrumentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:to="lab_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AsiaPacificMember_5e34ed52-4043-4523-b409-6f137d4dcd9f_verboseLabel_en-US" xlink:label="lab_srt_AsiaPacificMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Asia Pacific [Member]</link:label>
    <link:label id="lab_srt_AsiaPacificMember_e00a0eff-4f5c-4974-8442-57822cafa7d8_terseLabel_en-US" xlink:label="lab_srt_AsiaPacificMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">APAC</link:label>
    <link:label id="lab_srt_AsiaPacificMember_label_en-US" xlink:label="lab_srt_AsiaPacificMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asia Pacific [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AsiaPacificMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AsiaPacificMember" xlink:to="lab_srt_AsiaPacificMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MinimumMember_9a8ec8ed-c798-40a7-9ec6-96628f3615b4_terseLabel_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum</link:label>
    <link:label id="lab_srt_MinimumMember_label_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember" xlink:to="lab_srt_MinimumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnamortizedDebtIssuanceExpense_5ca87f02-d647-4fab-a017-d342d5061d47_terseLabel_en-US" xlink:label="lab_us-gaap_UnamortizedDebtIssuanceExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unamortized debt issuance expense</link:label>
    <link:label id="lab_us-gaap_UnamortizedDebtIssuanceExpense_6719bd56-4d1e-455d-ad49-07da4d7371a8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnamortizedDebtIssuanceExpense" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Less: unamortized debt issuance costs</link:label>
    <link:label id="lab_us-gaap_UnamortizedDebtIssuanceExpense_label_en-US" xlink:label="lab_us-gaap_UnamortizedDebtIssuanceExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unamortized Debt Issuance Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnamortizedDebtIssuanceExpense" xlink:to="lab_us-gaap_UnamortizedDebtIssuanceExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RoyaltyMember_49b7d4fb-3b80-466f-8d4b-da4f2a2ba8ca_terseLabel_en-US" xlink:label="lab_us-gaap_RoyaltyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue sharing arrangement</link:label>
    <link:label id="lab_us-gaap_RoyaltyMember_label_en-US" xlink:label="lab_us-gaap_RoyaltyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Royalty [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RoyaltyMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RoyaltyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RoyaltyMember" xlink:to="lab_us-gaap_RoyaltyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrAdoptionDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adoption Date</link:label>
    <link:label id="lab_ecd_TrdArrAdoptionDate_label_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Adoption Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrAdoptionDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrAdoptionDate" xlink:to="lab_ecd_TrdArrAdoptionDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyTransactionsAbstract_label_en-US" xlink:label="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party Transactions [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract" xlink:to="lab_us-gaap_RelatedPartyTransactionsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent_4dfda640-afb5-4113-81fd-ad323041455a_verboseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue, net of current portion</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_bff33746-cd48-4530-b829-99408921ac99_terseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provision (recovery) for credit losses</link:label>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_label_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:to="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_23aa00fe-3b5f-426b-bd97-b6ce3b646efb_terseLabel_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:to="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year</link:label>
    <link:label id="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember_label_en-US" xlink:label="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:to="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentCarryingAmount_f57258fa-b1a3-491a-a5a0-513f97a47117_totalLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentCarryingAmount" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total principal payments</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentCarryingAmount_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentCarryingAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentCarryingAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentCarryingAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentCarryingAmount" xlink:to="lab_us-gaap_DebtInstrumentCarryingAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardExrcPrice_terseLabel_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise Price</link:label>
    <link:label id="lab_ecd_AwardExrcPrice_label_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardExrcPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardExrcPrice" xlink:to="lab_ecd_AwardExrcPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_b8bb21ff-1397-4302-8d59-7a57ff482cac_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Significant Components of Deferred Tax Assets and Liabilities</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ArzedaMember_a3c0c3e7-bc94-49c8-8778-0d06f5638525_terseLabel_en-US" xlink:label="lab_cdxs_ArzedaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Arzeda</link:label>
    <link:label id="lab_cdxs_ArzedaMember_label_en-US" xlink:label="lab_cdxs_ArzedaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Arzeda [Member]</link:label>
    <link:label id="lab_cdxs_ArzedaMember_documentation_en-US" xlink:label="lab_cdxs_ArzedaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Arzeda</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember" xlink:href="cdxs-20241231.xsd#cdxs_ArzedaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ArzedaMember" xlink:to="lab_cdxs_ArzedaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrDuration_terseLabel_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Arrangement Duration</link:label>
    <link:label id="lab_ecd_TrdArrDuration_label_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrDuration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrDuration" xlink:to="lab_ecd_TrdArrDuration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLossCarryforwards_dcc316f4-67aa-4870-8296-dc581dfadd44_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net operating losses, amount</link:label>
    <link:label id="lab_us-gaap_OperatingLossCarryforwards_label_en-US" xlink:label="lab_us-gaap_OperatingLossCarryforwards" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLossCarryforwards" xlink:to="lab_us-gaap_OperatingLossCarryforwards" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_873afbcb-74e6-4bbc-a223-1ace7e977cff_verboseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract" xlink:to="lab_us-gaap_StockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_efff91a9-8085-45bb-8c3e-b66eb81b4ccc_terseLabel_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name of Property [Axis]</link:label>
    <link:label id="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_label_en-US" xlink:label="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Name of Property [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:to="lab_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DomesticCountryMember_87e57776-e49a-4f7d-aa34-2c86ce315113_terseLabel_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_DomesticCountryMember_label_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Domestic Tax Jurisdiction [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DomesticCountryMember" xlink:to="lab_us-gaap_DomesticCountryMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_terseLabel_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Material Terms of Trading Arrangement</link:label>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_label_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Material Terms of Trading Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:to="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentTerm_d7add658-4f3b-4ab5-af22-b013227ba0fe_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, term</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentTerm_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentTerm" xlink:to="lab_us-gaap_DebtInstrumentTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllIndividualsMember_terseLabel_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Individuals</link:label>
    <link:label id="lab_ecd_AllIndividualsMember_label_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Individuals [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="lab_ecd_AllIndividualsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_7670fbb1-3365-4913-bd82-03ace58cafeb_terseLabel_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, maximum employee subscription amount</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_label_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount</link:label>
    <link:label id="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_documentation_en-US" xlink:label="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:to="lab_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_73ed4b1c-66d8-4078-8976-25ad5c152652_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_0597b6df-f969-408a-afac-ab799ac7cca1_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest and other expense, net ($0, $0 and $208 from a related party)</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_cc71337d-14ef-4428-8f25-39d621fac7b4_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Interest and other expense, net</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Nonoperating Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_f60deddb-edd6-4174-89d5-cefa41b7e701_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_c61f258d-0ae4-45e2-bda2-387682246964_terseLabel_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">One-time Termination Benefits</link:label>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_label_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">One-time Termination Benefits [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:to="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_f8418267-c574-49e1-8477-05d85224638f_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized Gains</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_9d0d7f35-9cf7-452e-95cb-078e34db7b54_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized compensation cost, awards other than options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward_7251c3d6-a694-49d5-a5af-f3a9903696fc_terseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward_label_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset [Roll Forward]</link:label>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseRightOfUseAssetRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:to="lab_cdxs_OperatingLeaseRightOfUseAssetRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_747cd6e0-eb75-4ab3-a4e6-739d26032f2b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RelatedPartyDomain_fdc1fc97-5264-495e-a12f-9ec69b21e1ce_terseLabel_en-US" xlink:label="lab_us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Related Party [Domain]</link:label>
    <link:label id="lab_us-gaap_RelatedPartyDomain_label_en-US" xlink:label="lab_us-gaap_RelatedPartyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related and Nonrelated Parties [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RelatedPartyDomain" xlink:to="lab_us-gaap_RelatedPartyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_0117be42-ff2e-466b-884e-9916d2089a17_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net operating losses, not subject to expiration, amount</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_b89bd044-6ecd-4d84-853f-f9a3b4c406bf_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:to="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentLineItems_b0719c37-ea95-4374-a82f-1f8349ff5bc3_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term Purchase Commitment [Line Items]</link:label>
    <link:label id="lab_us-gaap_LongTermPurchaseCommitmentLineItems_label_en-US" xlink:label="lab_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Purchase Commitment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:to="lab_us-gaap_LongTermPurchaseCommitmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2122b042-baca-4200-a8b0-982f507ce8b4_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, consecutive offering period</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:to="lab_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022PSUMember_74dea044-050d-4b74-81ec-72753405666d_terseLabel_en-US" xlink:label="lab_cdxs_A2022PSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022 PSU</link:label>
    <link:label id="lab_cdxs_A2022PSUMember_label_en-US" xlink:label="lab_cdxs_A2022PSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022 PSU [Member]</link:label>
    <link:label id="lab_cdxs_A2022PSUMember_documentation_en-US" xlink:label="lab_cdxs_A2022PSUMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2022 PSU</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUMember" xlink:href="cdxs-20241231.xsd#cdxs_A2022PSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022PSUMember" xlink:to="lab_cdxs_A2022PSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_4bfee7c8-ae0e-4f53-bb54-0f892dd1e0eb_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Volatility</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_33170e3c-4b5b-47c2-99d1-2081b5330109_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, RSA Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_727799e3-c45c-4958-9f1a-007a546f9463_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerIMember_2bbdc1ec-ff2a-4a9a-906a-8d8d1e1367b1_terseLabel_en-US" xlink:label="lab_cdxs_CustomerIMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer I</link:label>
    <link:label id="lab_cdxs_CustomerIMember_label_en-US" xlink:label="lab_cdxs_CustomerIMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer I [Member]</link:label>
    <link:label id="lab_cdxs_CustomerIMember_documentation_en-US" xlink:label="lab_cdxs_CustomerIMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer I</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerIMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerIMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerIMember" xlink:to="lab_cdxs_CustomerIMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfStockIssuanceCosts_a42cab86-6c06-4642-917c-6128c5cc8954_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfStockIssuanceCosts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Costs incurred in connection with offering</link:label>
    <link:label id="lab_us-gaap_PaymentsOfStockIssuanceCosts_label_en-US" xlink:label="lab_us-gaap_PaymentsOfStockIssuanceCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments of Stock Issuance Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfStockIssuanceCosts" xlink:to="lab_us-gaap_PaymentsOfStockIssuanceCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LongTermUnbilledReceivablesMember_13b2538b-ec59-40cb-bad3-185fadf4031f_terseLabel_en-US" xlink:label="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-Term Unbilled Receivables</link:label>
    <link:label id="lab_cdxs_LongTermUnbilledReceivablesMember_label_en-US" xlink:label="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Unbilled Receivables [Member]</link:label>
    <link:label id="lab_cdxs_LongTermUnbilledReceivablesMember_documentation_en-US" xlink:label="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Long-Term Unbilled Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LongTermUnbilledReceivablesMember" xlink:href="cdxs-20241231.xsd#cdxs_LongTermUnbilledReceivablesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LongTermUnbilledReceivablesMember" xlink:to="lab_cdxs_LongTermUnbilledReceivablesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_6d05286f-546a-46c9-bf5d-3b4aeeda4bad_verboseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2019And2024InducementPlanMember_630d175c-da14-4b15-b8c5-0c8715705ad2_terseLabel_en-US" xlink:label="lab_cdxs_A2019And2024InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2019 and 2024 Inducement Plan</link:label>
    <link:label id="lab_cdxs_A2019And2024InducementPlanMember_label_en-US" xlink:label="lab_cdxs_A2019And2024InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2019 And 2024 Inducement Plan [Member]</link:label>
    <link:label id="lab_cdxs_A2019And2024InducementPlanMember_documentation_en-US" xlink:label="lab_cdxs_A2019And2024InducementPlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2019 And 2024 Inducement Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019And2024InducementPlanMember" xlink:href="cdxs-20241231.xsd#cdxs_A2019And2024InducementPlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2019And2024InducementPlanMember" xlink:to="lab_cdxs_A2019And2024InducementPlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_93cf1488-86e3-41a9-b46d-188efff308de_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of long-lived assets held-for-use</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment, Long-Lived Asset, Held-for-Use</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:to="lab_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureAxis_terseLabel_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measure:</link:label>
    <link:label id="lab_ecd_MeasureAxis_label_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measure [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureAxis" xlink:to="lab_ecd_MeasureAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_a1a4bac8-4fed-442b-be67-f7dbee1c031f_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additions based on tax positions related to current year</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_a12afd27-898b-40e9-bd38-bebe852e3a89_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues_3b030064-4e0e-4993-9b60-90b9212e37b0_verboseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock in connection with an equity sales agreement, net of issuance costs (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues_878b1a05-c065-45bb-a9d0-b2a314a90cf2_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock, net of issuance costs (in shares)</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Shares, New Issues</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_b7c7a1f8-bb83-48c3-ba3b-f468f337986a_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany" xlink:to="lab_dei_EntityEmergingGrowthCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive_3077eccc-2f43-47ed-95e5-afdd2b9685f5_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive_label_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Maturity, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:to="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_TakedaPharmaceuticalCoLtdMember_b8b88f45-8614-4829-a9a9-c22bbafdc7bc_terseLabel_en-US" xlink:label="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Takeda</link:label>
    <link:label id="lab_cdxs_TakedaPharmaceuticalCoLtdMember_label_en-US" xlink:label="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Takeda Pharmaceutical Co. Ltd. [Member]</link:label>
    <link:label id="lab_cdxs_TakedaPharmaceuticalCoLtdMember_documentation_en-US" xlink:label="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Takeda Pharmaceutical Co. Ltd.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:href="cdxs-20241231.xsd#cdxs_TakedaPharmaceuticalCoLtdMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:to="lab_cdxs_TakedaPharmaceuticalCoLtdMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAggregatedInvestmentsMember_dbc6e175-6b2c-4d61-89e7-4eb00324859c_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAggregatedInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other investments in non-marketable equity securities</link:label>
    <link:label id="lab_us-gaap_OtherAggregatedInvestmentsMember_label_en-US" xlink:label="lab_us-gaap_OtherAggregatedInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Security Investments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAggregatedInvestmentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAggregatedInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAggregatedInvestmentsMember" xlink:to="lab_us-gaap_OtherAggregatedInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-GAAP Measure Description</link:label>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_label_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-GAAP Measure Description [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:to="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_e0b46307-f575-478e-bcdb-540ae814bf67_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other (in dollars per share)</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Other, Weighted Average Grant Date Fair Value</link:label>
    <link:label id="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_documentation_en-US" xlink:label="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Other, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" xlink:to="lab_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_AllowanceForTenantImprovements_012d91f9-3980-4917-9bd4-ffdb8df29579_terseLabel_en-US" xlink:label="lab_cdxs_AllowanceForTenantImprovements" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Allowance for tenant improvements</link:label>
    <link:label id="lab_cdxs_AllowanceForTenantImprovements_label_en-US" xlink:label="lab_cdxs_AllowanceForTenantImprovements" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Allowance For Tenant Improvements</link:label>
    <link:label id="lab_cdxs_AllowanceForTenantImprovements_documentation_en-US" xlink:label="lab_cdxs_AllowanceForTenantImprovements" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Allowance For Tenant Improvements</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForTenantImprovements" xlink:href="cdxs-20241231.xsd#cdxs_AllowanceForTenantImprovements"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_AllowanceForTenantImprovements" xlink:to="lab_cdxs_AllowanceForTenantImprovements" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityComponentDomain_62e3d303-90e0-4ddd-8a1d-b45529ac9f93_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:label id="lab_us-gaap_EquityComponentDomain_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain" xlink:to="lab_us-gaap_EquityComponentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_3f35b08a-d08c-4168-bccf-99fbeb2d32e4_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A400PenoscotMember_4dccf87f-4494-4b93-a53f-8308bb44fe4c_terseLabel_en-US" xlink:label="lab_cdxs_A400PenoscotMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">400 Penoscot</link:label>
    <link:label id="lab_cdxs_A400PenoscotMember_label_en-US" xlink:label="lab_cdxs_A400PenoscotMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">400 Penoscot [Member]</link:label>
    <link:label id="lab_cdxs_A400PenoscotMember_documentation_en-US" xlink:label="lab_cdxs_A400PenoscotMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">400 Penoscot</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A400PenoscotMember" xlink:href="cdxs-20241231.xsd#cdxs_A400PenoscotMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A400PenoscotMember" xlink:to="lab_cdxs_A400PenoscotMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ComputerEquipmentAndSoftwareMember_30659020-4055-455a-b408-680030805fd4_terseLabel_en-US" xlink:label="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer equipment and software</link:label>
    <link:label id="lab_cdxs_ComputerEquipmentAndSoftwareMember_label_en-US" xlink:label="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computer Equipment and Software [Member]</link:label>
    <link:label id="lab_cdxs_ComputerEquipmentAndSoftwareMember_documentation_en-US" xlink:label="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Computer Equipment and Software [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember" xlink:href="cdxs-20241231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ComputerEquipmentAndSoftwareMember" xlink:to="lab_cdxs_ComputerEquipmentAndSoftwareMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional 402(v) Disclosure</link:label>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_label_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional 402(v) Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Additional402vDisclosureTextBlock" xlink:to="lab_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityShellCompany_d20f5848-b59b-46ca-ad6c-d0dbb6db9fc4_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:label id="lab_dei_EntityShellCompany_label_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany" xlink:to="lab_dei_EntityShellCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_bc68d9e2-eea3-4460-b98e-9e9eb0de7847_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode" xlink:to="lab_dei_EntityIncorporationStateCountryCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementTable_33bae669-dd79-4ed1-998a-55d485968f58_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:label id="lab_us-gaap_StatementTable_label_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable" xlink:to="lab_us-gaap_StatementTable" xlink:type="arc" order="1"/>
    <link:label id="lab_country_IE_3e8ccbc5-3f95-4a22-b496-2700509330f9_terseLabel_en-US" xlink:label="lab_country_IE" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">IRELAND</link:label>
    <link:label id="lab_country_IE_label_en-US" xlink:label="lab_country_IE" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">IRELAND</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_IE" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_IE"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_IE" xlink:to="lab_country_IE" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestExpenseDebt_d8b27264-9b55-4004-bdda-2d0cdcf32d43_terseLabel_en-US" xlink:label="lab_us-gaap_InterestExpenseDebt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest expense, debt</link:label>
    <link:label id="lab_us-gaap_InterestExpenseDebt_label_en-US" xlink:label="lab_us-gaap_InterestExpenseDebt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Expense, Debt</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseDebt" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseDebt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestExpenseDebt" xlink:to="lab_us-gaap_InterestExpenseDebt" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_CounterpartyNameAxis_aec6b40c-ea41-4114-996c-7751e2fd36e9_terseLabel_en-US" xlink:label="lab_srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:label id="lab_srt_CounterpartyNameAxis_label_en-US" xlink:label="lab_srt_CounterpartyNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CounterpartyNameAxis" xlink:to="lab_srt_CounterpartyNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_country_IN_f39d0da9-7976-4c08-a967-29b8154b07c1_terseLabel_en-US" xlink:label="lab_country_IN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">India</link:label>
    <link:label id="lab_country_IN_label_en-US" xlink:label="lab_country_IN" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">INDIA</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_IN" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_IN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_IN" xlink:to="lab_country_IN" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestPaidNet_6a091e5c-94a2-445b-a5d7-c132509b2eab_terseLabel_en-US" xlink:label="lab_us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest paid</link:label>
    <link:label id="lab_us-gaap_InterestPaidNet_label_en-US" xlink:label="lab_us-gaap_InterestPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Paid, Excluding Capitalized Interest, Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestPaidNet" xlink:to="lab_us-gaap_InterestPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_e8e3ba73-6478-4b3a-afe5-43f4ede5ac17_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 1</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member" xlink:to="lab_us-gaap_FairValueInputsLevel1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_61941b27-33b3-490a-abc7-442c52bc9644_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification_879d3f03-28df-4e79-9690-b578785e8913_verboseLabel_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Addition due to lease modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification_label_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset Due To Lease Modification</link:label>
    <link:label id="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification_documentation_en-US" xlink:label="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset Due To Lease Modification</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" xlink:to="lab_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrent_ab8e95bb-5a66-4e14-b311-0d81e379d3cb_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:label id="lab_us-gaap_AssetsCurrent_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent" xlink:to="lab_us-gaap_AssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_cfeb5174-3e71-4786-b3bf-63e19095c543_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract_d7f01a01-73f3-4fd4-8cce-8eed4d72521f_terseLabel_en-US" xlink:label="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Supplemental non-cash investing and financing activities:</link:label>
    <link:label id="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract_label_en-US" xlink:label="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncash Investing and Financing Items [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="lab_us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_76b3095f-ff55-49c3-9f02-19e555e95a8e_verboseLabel_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Research and development revenue ($0, $0 and $1,245 from a related party)</link:label>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_538356ce-a6c8-45e6-a4b0-d93f65174cdb_terseLabel_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and development revenue</link:label>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_label_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Revenue [Member]</link:label>
    <link:label id="lab_cdxs_ResearchandDevelopmentRevenueMember_documentation_en-US" xlink:label="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Research and Development Revenue [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ResearchandDevelopmentRevenueMember" xlink:to="lab_cdxs_ResearchandDevelopmentRevenueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_23370215-032c-47f5-af7f-3b038a3199e7_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options exercisable (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_MolecularAssembliesIncMember_7ffcb462-b226-4c12-9f4f-6f9caed8ccef_terseLabel_en-US" xlink:label="lab_cdxs_MolecularAssembliesIncMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">MAI</link:label>
    <link:label id="lab_cdxs_MolecularAssembliesIncMember_label_en-US" xlink:label="lab_cdxs_MolecularAssembliesIncMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Molecular Assemblies, Inc. [Member]</link:label>
    <link:label id="lab_cdxs_MolecularAssembliesIncMember_documentation_en-US" xlink:label="lab_cdxs_MolecularAssembliesIncMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Molecular Assemblies, Inc.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_MolecularAssembliesIncMember" xlink:to="lab_cdxs_MolecularAssembliesIncMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_bfc6676e-f8b7-4c64-b3d1-b1cb2ffe5bee_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_label_en-US" xlink:label="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Debt, Maturity, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:to="lab_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentTable_b708e7a0-a81a-4427-b793-15f9bea14e51_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Long-Term Debt Instruments [Table]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentTable_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Long-Term Debt Instruments [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentTable" xlink:to="lab_us-gaap_DebtInstrumentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_9522f884-4611-4dc4-86b9-c77536c5f61f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average grant date fair value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_677e7b2a-5af9-4ae1-8c9f-9d0e824e04f7_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment in non-marketable equity securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_81495a3b-535a-4081-8be4-e31348688139_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_4766744d-a189-4b32-ac16-15e65152b9ba_terseLabel_en-US" xlink:label="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of options to extend lease term</link:label>
    <link:label id="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_label_en-US" xlink:label="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Number Of Renewal Options</link:label>
    <link:label id="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_documentation_en-US" xlink:label="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Number Of Renewal Options</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" xlink:href="cdxs-20241231.xsd#cdxs_LesseeOperatingLeaseNumberOfRenewalOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" xlink:to="lab_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_7c8583a3-be49-438c-925e-4a1c21c2c727_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_105cb01d-a4cc-4041-aec1-ad54e245ace4_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NestleHealthScienceMember_224c1981-5b0f-43d7-aec1-cb9bdc6cde20_terseLabel_en-US" xlink:label="lab_cdxs_NestleHealthScienceMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nestl&#233; Health Science</link:label>
    <link:label id="lab_cdxs_NestleHealthScienceMember_label_en-US" xlink:label="lab_cdxs_NestleHealthScienceMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nestl&#233; Health Science [Member]</link:label>
    <link:label id="lab_cdxs_NestleHealthScienceMember_documentation_en-US" xlink:label="lab_cdxs_NestleHealthScienceMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Nestl&#233; Health Science</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestleHealthScienceMember" xlink:href="cdxs-20241231.xsd#cdxs_NestleHealthScienceMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NestleHealthScienceMember" xlink:to="lab_cdxs_NestleHealthScienceMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_SaleOfStockCommissionFeePercent_291f8097-7bf5-438a-9ea5-0534e01419b9_terseLabel_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionFeePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of stock, commission fee, percent</link:label>
    <link:label id="lab_cdxs_SaleOfStockCommissionFeePercent_label_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionFeePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Commission Fee, Percent</link:label>
    <link:label id="lab_cdxs_SaleOfStockCommissionFeePercent_documentation_en-US" xlink:label="lab_cdxs_SaleOfStockCommissionFeePercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sale Of Stock, Commission Fee, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionFeePercent" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockCommissionFeePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_SaleOfStockCommissionFeePercent" xlink:to="lab_cdxs_SaleOfStockCommissionFeePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShortTermUnbilledReceivablesMember_ae0311ec-54e5-42b6-8970-30cd17a95366_terseLabel_en-US" xlink:label="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-Term Unbilled Receivables</link:label>
    <link:label id="lab_cdxs_ShortTermUnbilledReceivablesMember_label_en-US" xlink:label="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-Term Unbilled Receivables [Member]</link:label>
    <link:label id="lab_cdxs_ShortTermUnbilledReceivablesMember_documentation_en-US" xlink:label="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Short-Term Unbilled Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShortTermUnbilledReceivablesMember" xlink:href="cdxs-20241231.xsd#cdxs_ShortTermUnbilledReceivablesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShortTermUnbilledReceivablesMember" xlink:to="lab_cdxs_ShortTermUnbilledReceivablesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_42c34b0c-4c92-44a1-aed6-d1539f828fdc_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Federal, State and Foreign NOL Carryforwards and Federal Research and Development Tax Credits</link:label>
    <link:label id="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_label_en-US" xlink:label="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Summary of Operating Loss Carryforwards [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:to="lab_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_ba0a5932-6f35-4cf1-94b6-b3699fa2e37f_terseLabel_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:label id="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_label_en-US" xlink:label="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="lab_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_9ab01103-0c8c-4773-b4ed-948736b1b641_verboseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average discount rate</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_d230ef68-a708-462f-a8de-94664e4e12e6_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by (used in) financing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_a3e38fec-db17-450c-9b8c-0f93a2798356_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserves and accruals</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CreditFacilityAxis_8f84eb1d-3fd1-44c8-a809-a4fa8235bee9_terseLabel_en-US" xlink:label="lab_us-gaap_CreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:label id="lab_us-gaap_CreditFacilityAxis_label_en-US" xlink:label="lab_us-gaap_CreditFacilityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CreditFacilityAxis" xlink:to="lab_us-gaap_CreditFacilityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_b4c1dfb9-7a10-421f-b426-3f9b53caf54b_terseLabel_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:label id="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis_label_en-US" xlink:label="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="lab_us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_6020276a-1f4a-47d9-906e-a60fc39319d4_totalLabel_en-US" xlink:label="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_label_en-US" xlink:label="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents And Short Term Investments, Amortized Cost</link:label>
    <link:label id="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_documentation_en-US" xlink:label="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents And Short Term Investments, Amortized Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" xlink:href="cdxs-20241231.xsd#cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" xlink:to="lab_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_7aa17055-9054-4c79-941f-07a55f41a7e4_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_label_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName" xlink:to="lab_dei_EntityRegistrantName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote</link:label>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:to="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DepreciationDepletionAndAmortization_bfabb292-3967-4749-824e-709b60d4495d_terseLabel_en-US" xlink:label="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:label id="lab_us-gaap_DepreciationDepletionAndAmortization_label_en-US" xlink:label="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DepreciationDepletionAndAmortization" xlink:to="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardGrantDateFairValue_terseLabel_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value as of Grant Date</link:label>
    <link:label id="lab_ecd_AwardGrantDateFairValue_label_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardGrantDateFairValue" xlink:to="lab_ecd_AwardGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_73a64d03-3271-41a5-9174-4d694cb6c0b1_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign operations taxed at different rates</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:to="lab_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_cd055e58-3cf6-42d5-91b5-bbe47e233957_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk</link:label>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_11611aa1-5292-4fc7-8047-4a2395a4922c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate intrinsic value, options vested and expected to vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_acc978bf-49f2-4707-b678-4ba7e32c7e48_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member" xlink:to="lab_us-gaap_FairValueInputsLevel2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerHMember_de5071f0-9217-4c86-8857-6d35c4a4e893_terseLabel_en-US" xlink:label="lab_cdxs_CustomerHMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer H</link:label>
    <link:label id="lab_cdxs_CustomerHMember_label_en-US" xlink:label="lab_cdxs_CustomerHMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer H [Member]</link:label>
    <link:label id="lab_cdxs_CustomerHMember_documentation_en-US" xlink:label="lab_cdxs_CustomerHMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer H</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerHMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerHMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerHMember" xlink:to="lab_cdxs_CustomerHMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_SegmentGeographicalDomain_49463417-4a9e-4366-b354-e19705541921_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:label id="lab_srt_SegmentGeographicalDomain_label_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_SegmentGeographicalDomain" xlink:to="lab_srt_SegmentGeographicalDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_A2022PBOMember_321d3e3c-3a84-4ac9-ba3d-6f32390eb0d3_terseLabel_en-US" xlink:label="lab_cdxs_A2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022 PBO</link:label>
    <link:label id="lab_cdxs_A2022PBOMember_label_en-US" xlink:label="lab_cdxs_A2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022 PBO [Member]</link:label>
    <link:label id="lab_cdxs_A2022PBOMember_documentation_en-US" xlink:label="lab_cdxs_A2022PBOMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">2022 PBO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PBOMember" xlink:href="cdxs-20241231.xsd#cdxs_A2022PBOMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_A2022PBOMember" xlink:to="lab_cdxs_A2022PBOMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_c578280d-cb94-44bf-967f-3e966ac51898_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Disaggregation of Revenue</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_UpFrontPaymentMember_17dbdb03-a74e-49c9-91c2-0cf0aac416e0_terseLabel_en-US" xlink:label="lab_cdxs_UpFrontPaymentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Up-front Payment</link:label>
    <link:label id="lab_cdxs_UpFrontPaymentMember_label_en-US" xlink:label="lab_cdxs_UpFrontPaymentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Up-front Payment [Member]</link:label>
    <link:label id="lab_cdxs_UpFrontPaymentMember_documentation_en-US" xlink:label="lab_cdxs_UpFrontPaymentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Up-front Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_UpFrontPaymentMember" xlink:href="cdxs-20241231.xsd#cdxs_UpFrontPaymentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_UpFrontPaymentMember" xlink:to="lab_cdxs_UpFrontPaymentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues_8b5e8c4e-b7c0-44a5-bd2f-6165e8bc1bca_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock in connection with an equity sales agreement, net of issuance costs</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, New Issues</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledContractsReceivable_82f82a54-73c1-42fd-96b6-4e57781057d2_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledContractsReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled receivables</link:label>
    <link:label id="lab_us-gaap_UnbilledContractsReceivable_label_en-US" xlink:label="lab_us-gaap_UnbilledContractsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unbilled Contracts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledContractsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledContractsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledContractsReceivable" xlink:to="lab_us-gaap_UnbilledContractsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_5375c11c-29d4-4ebd-bab2-fab02856d076_verboseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Stock-based Compensation Expense</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_af4b0f25-3663-46f3-a014-e4c2d1000b5a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Cost [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Cost [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDateAxis_terseLabel_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement Determination Date:</link:label>
    <link:label id="lab_ecd_RestatementDateAxis_label_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Determination Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDateAxis" xlink:to="lab_ecd_RestatementDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember_b00809a9-5c2e-4a02-b7c7-24f9cacbb034_terseLabel_en-US" xlink:label="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Arrangements and Non-arrangement Transactions [Domain]</link:label>
    <link:label id="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember_label_en-US" xlink:label="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Collaborative Arrangement and Arrangement Other than Collaborative [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:to="lab_us-gaap_ArrangementsAndNonarrangementTransactionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_Security12bTitle_6d8904a3-19ee-4b51-b07e-774ce5f44d8a_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_label_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle" xlink:to="lab_dei_Security12bTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_20db8427-f822-415d-b5d5-17917a33cdc0_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockValue_0972cd7e-ba4d-49e2-9040-3b08250c436e_verboseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Common stock, $0.0001 par value per share; 200,000 shares authorized; 81,850 and 69,905 shares issued and outstanding at December&#160;31, 2024 and December&#160;31, 2023, respectively</link:label>
    <link:label id="lab_us-gaap_CommonStockValue_label_en-US" xlink:label="lab_us-gaap_CommonStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Value, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValue" xlink:to="lab_us-gaap_CommonStockValue" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_1e020338-2c5f-4bea-a3b7-77c4be4ed308_terseLabel_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_label_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:to="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerBMember_d35df132-6661-42d4-b28e-ac67882f799e_terseLabel_en-US" xlink:label="lab_cdxs_CustomerBMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer B</link:label>
    <link:label id="lab_cdxs_CustomerBMember_label_en-US" xlink:label="lab_cdxs_CustomerBMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer B [Member]</link:label>
    <link:label id="lab_cdxs_CustomerBMember_documentation_en-US" xlink:label="lab_cdxs_CustomerBMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer B</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerBMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerBMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerBMember" xlink:to="lab_cdxs_CustomerBMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_55794009-3a69-4444-9515-77ca0d1fc1f2_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetRetirementObligation_0354e6d5-c26e-4b46-bd0f-89cc1ffbd76b_terseLabel_en-US" xlink:label="lab_us-gaap_AssetRetirementObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset retirement obligation</link:label>
    <link:label id="lab_us-gaap_AssetRetirementObligation_label_en-US" xlink:label="lab_us-gaap_AssetRetirementObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Retirement Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetRetirementObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetRetirementObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetRetirementObligation" xlink:to="lab_us-gaap_AssetRetirementObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_d34939a2-5a8f-42bd-b4a7-322178644407_terseLabel_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amounts included in contract liabilities at the beginning of the period:</link:label>
    <link:label id="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_label_en-US" xlink:label="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Contract with Customer, Asset and Liability [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:to="lab_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerGMember_1a99ccae-8a67-46e8-be17-d94fa573f504_terseLabel_en-US" xlink:label="lab_cdxs_CustomerGMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer G</link:label>
    <link:label id="lab_cdxs_CustomerGMember_label_en-US" xlink:label="lab_cdxs_CustomerGMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer G [Member]</link:label>
    <link:label id="lab_cdxs_CustomerGMember_documentation_en-US" xlink:label="lab_cdxs_CustomerGMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer G</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerGMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerGMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerGMember" xlink:to="lab_cdxs_CustomerGMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOther_ca071dca-5f3d-4208-9f58-4f62d301391f_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOther_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOther" xlink:to="lab_us-gaap_DeferredTaxAssetsOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_92f5fc8b-4c2b-4cff-8fd3-7a9af48c82f5_verboseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Financing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_9b85b9eb-a69e-430d-a5aa-fd3120f03606_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems" xlink:to="lab_us-gaap_ConcentrationRiskLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockValue_d92e4654-a5c3-4574-b536-9745ff97c99c_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding</link:label>
    <link:label id="lab_us-gaap_PreferredStockValue_label_en-US" xlink:label="lab_us-gaap_PreferredStockValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Value, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockValue" xlink:to="lab_us-gaap_PreferredStockValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_957b527f-46ff-45cd-8fd2-25b9c288d681_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:to="lab_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryFinishedGoods_d40ce4b3-3c30-426e-ace8-fe11d84e9714_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoods" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:label id="lab_us-gaap_InventoryFinishedGoods_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoods" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Finished Goods, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoods" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoods"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoods" xlink:to="lab_us-gaap_InventoryFinishedGoods" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_9b2a04b6-ddec-4145-b90b-49d147358ecb_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Domain]</link:label>
    <link:label id="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_label_en-US" xlink:label="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:to="lab_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilities_f6a708d0-f5ca-430a-a3bf-da86173c0be5_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Total deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilities" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_28930780-9293-4c75-aebd-930d44806078_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net loss per share, basic (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic" xlink:to="lab_us-gaap_EarningsPerShareBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfCommonStock_db9e5bab-b195-4e60-83d3-8414644cd8b7_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from issuance of common stock in connection with equity sales agreements</link:label>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfCommonStock_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Issuance of Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeasePayments_0c9cf20c-c605-477c-ba93-ba28bcf75b56_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Lease payments</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_ce1ca0f3-41ca-4e4a-982a-9345efe3b368_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating cash flows from operating leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_label_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasePayments" xlink:to="lab_us-gaap_OperatingLeasePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsMember_95ac2c67-89c6-4846-a8c2-bea5997bdbe1_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsMember_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsMember" xlink:to="lab_us-gaap_CashAndCashEquivalentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Disclosure</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:to="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_6a312af4-9928-42d1-af92-cac8e1d121f5_terseLabel_en-US" xlink:label="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based payment arrangement, expense, increase (decrease)</link:label>
    <link:label id="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_label_en-US" xlink:label="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense, Increase (Decrease)</link:label>
    <link:label id="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_documentation_en-US" xlink:label="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense, Increase (Decrease)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" xlink:to="lab_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PfizerMember_ef0ae722-92b0-458f-a689-b229c9ce566d_terseLabel_en-US" xlink:label="lab_cdxs_PfizerMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pfizer</link:label>
    <link:label id="lab_cdxs_PfizerMember_label_en-US" xlink:label="lab_cdxs_PfizerMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pfizer [Member]</link:label>
    <link:label id="lab_cdxs_PfizerMember_documentation_en-US" xlink:label="lab_cdxs_PfizerMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Pfizer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PfizerMember" xlink:href="cdxs-20241231.xsd#cdxs_PfizerMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PfizerMember" xlink:to="lab_cdxs_PfizerMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_54b2e356-0f31-49c5-8f1f-a6345b414ad3_terseLabel_en-US" xlink:label="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial assets:</link:label>
    <link:label id="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_label_en-US" xlink:label="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financing Receivable, before Allowance for Credit Loss [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:to="lab_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_9b91f632-3034-4f61-b421-83508ccfd3e9_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration period</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid_ca4ab70b-deed-4abe-a1d8-1b7244c29e15_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capital expenditures incurred but not yet paid</link:label>
    <link:label id="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid_label_en-US" xlink:label="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Capital Expenditures Incurred but Not yet Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:to="lab_us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtPnsnAdjsSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Pension Adjustments Service Cost</link:label>
    <link:label id="lab_ecd_AggtPnsnAdjsSvcCstMember_label_en-US" xlink:label="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Pension Adjustments Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtPnsnAdjsSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerAMember_e2afc1bc-9825-4abc-9711-2f543cd762db_terseLabel_en-US" xlink:label="lab_cdxs_CustomerAMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer A</link:label>
    <link:label id="lab_cdxs_CustomerAMember_label_en-US" xlink:label="lab_cdxs_CustomerAMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer A [Member]</link:label>
    <link:label id="lab_cdxs_CustomerAMember_documentation_en-US" xlink:label="lab_cdxs_CustomerAMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer A</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerAMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerAMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerAMember" xlink:to="lab_cdxs_CustomerAMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_a999c208-bb84-453f-8408-59e22b3a85d1_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_9a5bf5d6-79ba-4b61-a767-9a2247cd7ddd_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent" xlink:to="lab_us-gaap_LiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_a87ea5a2-5f47-4556-8e89-e4472a4d2086_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized compensation cost, options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskCreditRisk_291cd539-f09c-4625-ac45-4027f2f51de4_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentrations of Credit Risk</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskCreditRisk_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Credit Risk, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskCreditRisk" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskCreditRisk"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskCreditRisk" xlink:to="lab_us-gaap_ConcentrationRiskCreditRisk" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c3e063e9-b2d5-4f9f-8887-34f9e544cd40_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_56ab6429-e38f-4058-bf19-441e43d9ef9a_verboseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Granted (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentAmortizedExitFee_15bbf2a7-3ef5-445b-8120-6f9976d90621_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentAmortizedExitFee" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Add: amortized exit fee</link:label>
    <link:label id="lab_cdxs_DebtInstrumentAmortizedExitFee_label_en-US" xlink:label="lab_cdxs_DebtInstrumentAmortizedExitFee" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Amortized Exit Fee</link:label>
    <link:label id="lab_cdxs_DebtInstrumentAmortizedExitFee_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentAmortizedExitFee" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Amortized Exit Fee</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentAmortizedExitFee" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentAmortizedExitFee"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentAmortizedExitFee" xlink:to="lab_cdxs_DebtInstrumentAmortizedExitFee" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_05530084-c394-4caf-a664-ee3ce0329589_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule Of Cash, Cash Equivalents, And Short-Term Investments</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:to="lab_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_18ce2578-8af7-427e-b8c6-31e80b28d5d0_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Table]</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_DebtInstrumentInterestPayableTerm_b9e50e75-e1a6-4c25-bded-9a61549788f5_terseLabel_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPayableTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt instrument, interest payable, term</link:label>
    <link:label id="lab_cdxs_DebtInstrumentInterestPayableTerm_label_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPayableTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest Payable, Term</link:label>
    <link:label id="lab_cdxs_DebtInstrumentInterestPayableTerm_documentation_en-US" xlink:label="lab_cdxs_DebtInstrumentInterestPayableTerm" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest Payable, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPayableTerm" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentInterestPayableTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_DebtInstrumentInterestPayableTerm" xlink:to="lab_cdxs_DebtInstrumentInterestPayableTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_1eada126-3053-4209-988b-a298fb09f024_terseLabel_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with customer, liability, retainer fee, creditable percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_label_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Creditable Percentage</link:label>
    <link:label id="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_documentation_en-US" xlink:label="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Retainer Fee, Creditable Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:to="lab_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_f1161155-ce4c-4636-9142-3394e68d87f6_verboseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Measurement and Measurement Inputs, Recurring and Nonrecurring [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementInputsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:to="lab_us-gaap_FairValueMeasurementInputsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightDomain_5b113484-f7b7-4e14-b89d-fe706019c75a_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Warrant or Right [Domain]</link:label>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightDomain_label_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Warrant or Right [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfWarrantOrRightDomain" xlink:to="lab_us-gaap_ClassOfWarrantOrRightDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_c2079bc8-8ed8-48ee-8de4-0de26b549f98_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of warrant or right, exercise price of warrants or rights (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_label_en-US" xlink:label="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Warrant or Right, Exercise Price of Warrants or Rights</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:to="lab_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:type="arc" order="1"/>
    <link:label id="lab_country_SG_d1e381fb-d068-4fa8-9cd8-1889ec2892f3_terseLabel_en-US" xlink:label="lab_country_SG" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SINGAPORE</link:label>
    <link:label id="lab_country_SG_label_en-US" xlink:label="lab_country_SG" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SINGAPORE</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_SG"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_SG" xlink:to="lab_country_SG" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_bce22a48-f5b5-4d36-96c5-a7c0377a6659_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based Compensation</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_87a63f45-4057-438a-9939-798d260e7f90_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown" xlink:to="lab_dei_EntityAddressCityOrTown" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfLongTermDebt_4465d083-c6c5-4e31-a0a9-9fb53c3f7950_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from long-term debt</link:label>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfLongTermDebt_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Issuance of Long-Term Debt</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_6151b9d4-7ea3-41d2-a094-6b509e78c679_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lease Accounting</link:label>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_63ad2517-4005-4b13-91e8-5a9fd34387af_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, Stock Options, Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_20b9dd3e-1577-42fd-b184-97348493cbf4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate intrinsic value of options exercised</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_070dca7f-041e-4a97-9a2d-c64f4a9d0dfe_terseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based payment arrangement, expense</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_label_en-US" xlink:label="lab_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments, Debt and Equity Securities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:to="lab_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_4ec9acd3-ddb8-4003-9404-f0318265c83f_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest and penalties recognize in income tax expense</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_1bf0596f-c6e1-4878-a709-2d956fc44878_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_7276815c-abd4-45e4-9691-62d1a9fdddf0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Forfeited/Expired (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AreaOfRealEstateProperty_ad8bccae-c4c5-40b3-904a-a24ed78bce83_terseLabel_en-US" xlink:label="lab_us-gaap_AreaOfRealEstateProperty" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Area of real estate property (in square feet)</link:label>
    <link:label id="lab_us-gaap_AreaOfRealEstateProperty_label_en-US" xlink:label="lab_us-gaap_AreaOfRealEstateProperty" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Area of Real Estate Property</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AreaOfRealEstateProperty" xlink:to="lab_us-gaap_AreaOfRealEstateProperty" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerFMember_b16b63ff-b0fb-4731-b7d9-d7add79aa766_terseLabel_en-US" xlink:label="lab_cdxs_CustomerFMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer F</link:label>
    <link:label id="lab_cdxs_CustomerFMember_label_en-US" xlink:label="lab_cdxs_CustomerFMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer F [Member]</link:label>
    <link:label id="lab_cdxs_CustomerFMember_documentation_en-US" xlink:label="lab_cdxs_CustomerFMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer F</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerFMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerFMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerFMember" xlink:to="lab_cdxs_CustomerFMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year</link:label>
    <link:label id="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember_label_en-US" xlink:label="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:to="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_RevenueRecognitionAnnualPayment_fe3b2ed0-1731-42e6-b222-b7945c28d97c_terseLabel_en-US" xlink:label="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue recognition, annual payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionAnnualPayment_label_en-US" xlink:label="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Annual Payment</link:label>
    <link:label id="lab_cdxs_RevenueRecognitionAnnualPayment_documentation_en-US" xlink:label="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue Recognition, Annual Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionAnnualPayment" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionAnnualPayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_RevenueRecognitionAnnualPayment" xlink:to="lab_cdxs_RevenueRecognitionAnnualPayment" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_8d339cd4-8110-4d11-b6fd-ff79b39a1815_terseLabel_en-US" xlink:label="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Penobscot Space, Five Year Renewal Option</link:label>
    <link:label id="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_label_en-US" xlink:label="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Penobscot Space, Five Year Renewal Option [Member]</link:label>
    <link:label id="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_documentation_en-US" xlink:label="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Penobscot Space, Five Year Renewal Option</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PenobscotSpaceFiveYearRenewalOptionMember" xlink:href="cdxs-20241231.xsd#cdxs_PenobscotSpaceFiveYearRenewalOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_PenobscotSpaceFiveYearRenewalOptionMember" xlink:to="lab_cdxs_PenobscotSpaceFiveYearRenewalOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SeriesBPreferredStockMember_0f5eb084-eb36-4fab-9599-b131a48f993a_terseLabel_en-US" xlink:label="lab_us-gaap_SeriesBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Series B Preferred Stock</link:label>
    <link:label id="lab_us-gaap_SeriesBPreferredStockMember_label_en-US" xlink:label="lab_us-gaap_SeriesBPreferredStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Series B Preferred Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SeriesBPreferredStockMember" xlink:to="lab_us-gaap_SeriesBPreferredStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_e5fe67ab-4775-4143-9c1b-728152adc72c_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalYearFocus_9cafdbb0-f774-41ff-aa52-ea71e71a2436_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalYearFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus" xlink:to="lab_dei_DocumentFiscalYearFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtInstrumentNameDomain_c3ad959f-b7a5-4b03-9b40-028b4eb56dd5_terseLabel_en-US" xlink:label="lab_us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_DebtInstrumentNameDomain_label_en-US" xlink:label="lab_us-gaap_DebtInstrumentNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtInstrumentNameDomain" xlink:to="lab_us-gaap_DebtInstrumentNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_NovartisMember_d4669eb7-dc18-440a-aab4-2f28f7a7eced_terseLabel_en-US" xlink:label="lab_cdxs_NovartisMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Novartis</link:label>
    <link:label id="lab_cdxs_NovartisMember_label_en-US" xlink:label="lab_cdxs_NovartisMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Novartis [Member]</link:label>
    <link:label id="lab_cdxs_NovartisMember_documentation_en-US" xlink:label="lab_cdxs_NovartisMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Novartis [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovartisMember" xlink:href="cdxs-20241231.xsd#cdxs_NovartisMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_NovartisMember" xlink:to="lab_cdxs_NovartisMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_2443f132-08f2-41de-9c4a-8d281e980064_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_ee9b8896-870d-4b12-bc61-cc1903393dcf_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate" xlink:to="lab_dei_DocumentPeriodEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsidiarySaleOfStockAxis_ef304b8c-95bd-4330-bec6-9272e40fea73_terseLabel_en-US" xlink:label="lab_us-gaap_SubsidiarySaleOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sale of Stock [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsidiarySaleOfStockAxis_label_en-US" xlink:label="lab_us-gaap_SubsidiarySaleOfStockAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale of Stock [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiarySaleOfStockAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsidiarySaleOfStockAxis" xlink:to="lab_us-gaap_SubsidiarySaleOfStockAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_f5788eff-ad0e-4ad5-8eee-03383d40d592_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Impairment of investment in non-marketable securities</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value, Impairment Loss, Annual Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_e983b7f9-2f59-40f6-9492-49090b4e2b88_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total minimum lease payments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_5e414d97-3df0-4de9-85a5-12fa349f63b4_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Non-vested, beginning of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_48284283-5fbf-4655-89b7-a498f7af9b5c_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Non-vested, end of period (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_a571d88b-2740-4fb0-9b22-bc4957865e2c_terseLabel_en-US" xlink:label="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Right-of-use Assets and Lease Obligations</link:label>
    <link:label id="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_label_en-US" xlink:label="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule Of Right-of-use Assets And Lease Obligations [Table Text Block]</link:label>
    <link:label id="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_documentation_en-US" xlink:label="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Schedule Of Right-of-use Assets And Lease Obligations</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:href="cdxs-20241231.xsd#cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:to="lab_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingArrLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingArrLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Arrangements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="lab_ecd_InsiderTradingArrLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_bab7caf2-cae2-403b-9647-2d439a4626ed_terseLabel_en-US" xlink:label="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Balance Sheet Details</link:label>
    <link:label id="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_label_en-US" xlink:label="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supplemental Balance Sheet Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="lab_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_70788c01-4427-41c3-91e9-cfb2e1de92fc_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_2839b861-7881-4a64-af6e-94a5945f8df3_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance obligations satisfied</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_6e77f425-dc6f-47e5-b7ad-031aecee5d48_verboseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid Expense and Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_FourCustomersMember_87b8ee7b-143a-48cb-87a4-5e912e833a0d_terseLabel_en-US" xlink:label="lab_cdxs_FourCustomersMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Four Customers</link:label>
    <link:label id="lab_cdxs_FourCustomersMember_label_en-US" xlink:label="lab_cdxs_FourCustomersMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Four Customers [Member]</link:label>
    <link:label id="lab_cdxs_FourCustomersMember_documentation_en-US" xlink:label="lab_cdxs_FourCustomersMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Four Customers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FourCustomersMember" xlink:href="cdxs-20241231.xsd#cdxs_FourCustomersMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_FourCustomersMember" xlink:to="lab_cdxs_FourCustomersMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_b948036c-5cd5-46c1-887c-79bc6a959311_totalLabel_en-US" xlink:label="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total financial assets, net</link:label>
    <link:label id="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts and Financing Receivable, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:to="lab_us-gaap_AccountsNotesAndLoansReceivableNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentTransitionReport_5ec3f064-8f6b-4ec7-bbde-e1a5462c30f9_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:label id="lab_dei_DocumentTransitionReport_label_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentTransitionReport" xlink:to="lab_dei_DocumentTransitionReport" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerCMember_796d7348-a76a-4444-a165-289078f66285_terseLabel_en-US" xlink:label="lab_cdxs_CustomerCMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer C</link:label>
    <link:label id="lab_cdxs_CustomerCMember_label_en-US" xlink:label="lab_cdxs_CustomerCMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer C [Member]</link:label>
    <link:label id="lab_cdxs_CustomerCMember_documentation_en-US" xlink:label="lab_cdxs_CustomerCMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer C</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerCMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerCMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerCMember" xlink:to="lab_cdxs_CustomerCMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_7164b95b-9eb7-4a80-91e8-02dbb752657b_terseLabel_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity securities without readily determinable fair value, upward price adjustment, annual amount</link:label>
    <link:label id="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_label_en-US" xlink:label="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Securities without Readily Determinable Fair Value, Upward Price Adjustment, Annual Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:to="lab_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PurchaseObligation_0f779d3b-dc7a-4597-8a26-6e85c4fb91a8_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseObligation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued purchases</link:label>
    <link:label id="lab_us-gaap_PurchaseObligation_label_en-US" xlink:label="lab_us-gaap_PurchaseObligation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Purchase Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseObligation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PurchaseObligation" xlink:to="lab_us-gaap_PurchaseObligation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_55fb97a9-32e6-4e91-a316-1b7cf4bb9b26_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Reconciliation of the Beginning and Ending Amount of Unrecognized Tax Benefits</link:label>
    <link:label id="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_2828d613-f087-453c-829c-a84ee6bfb6a8_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Investment in non-marketable securities</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_c25ade5c-37fd-407b-ac3c-48b87063b08c_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investments in non-marketable securities</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireOtherInvestments_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Other Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireOtherInvestments" xlink:to="lab_us-gaap_PaymentsToAcquireOtherInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_b379626d-6653-4d58-ab15-28aac49d847b_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_981e13f2-8ba6-4057-b25a-bd39ce245457_terseLabel_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_label_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_NameOfMajorCustomerDomain" xlink:to="lab_srt_NameOfMajorCustomerDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCurrentReportingStatus_34896767-620d-48b8-afa5-ecf78f8b5b20_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:label id="lab_dei_EntityCurrentReportingStatus_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus" xlink:to="lab_dei_EntityCurrentReportingStatus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsMember_ae1e8b38-a437-4733-a912-4dc7082b9623_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Deficit</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsMember_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember" xlink:to="lab_us-gaap_RetainedEarningsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AmortizationOfFinancingCosts_fccd79ec-2bc8-486f-b027-8bab8c8ce243_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfFinancingCosts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-cash interest expense</link:label>
    <link:label id="lab_us-gaap_AmortizationOfFinancingCosts_label_en-US" xlink:label="lab_us-gaap_AmortizationOfFinancingCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of Debt Issuance Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfFinancingCosts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfFinancingCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AmortizationOfFinancingCosts" xlink:to="lab_us-gaap_AmortizationOfFinancingCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d95c0c79-1500-4f1a-82b8-2f8a086d5ee7_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_69066746-0399-4d9f-8731-e0c4fef76483_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">RSUs</link:label>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:to="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_2499e923-2af3-438a-a7d2-83feb1b13142_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_terseLabel_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Executive Category:</link:label>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_label_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Executive Category [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="lab_ecd_ExecutiveCategoryAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CustomerDMember_5322c006-e751-4ab8-b621-8e9e482086e1_terseLabel_en-US" xlink:label="lab_cdxs_CustomerDMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer D</link:label>
    <link:label id="lab_cdxs_CustomerDMember_label_en-US" xlink:label="lab_cdxs_CustomerDMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer D [Member]</link:label>
    <link:label id="lab_cdxs_CustomerDMember_documentation_en-US" xlink:label="lab_cdxs_CustomerDMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer D</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerDMember" xlink:href="cdxs-20241231.xsd#cdxs_CustomerDMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CustomerDMember" xlink:to="lab_cdxs_CustomerDMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_a83a0c84-f555-465d-a2c4-d5db8f79145f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Components of Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_b6239ce3-8713-4899-9c48-08be09148360_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_a9e3d695-909d-4821-85b0-ffaf0d41c727_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain" xlink:to="lab_us-gaap_IncomeStatementLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LetterOfCreditMember_920af7c6-d820-4c47-9165-7cbb6b56fd23_terseLabel_en-US" xlink:label="lab_us-gaap_LetterOfCreditMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Letter of Credit</link:label>
    <link:label id="lab_us-gaap_LetterOfCreditMember_label_en-US" xlink:label="lab_us-gaap_LetterOfCreditMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Letter of Credit [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LetterOfCreditMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LetterOfCreditMember" xlink:to="lab_us-gaap_LetterOfCreditMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureName_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureName_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureName" xlink:to="lab_ecd_CoSelectedMeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_EnzymeSupplyAgreementMember_c5e3ce4b-961d-4015-b382-d9198de153c2_terseLabel_en-US" xlink:label="lab_cdxs_EnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Enzyme Supply Agreement</link:label>
    <link:label id="lab_cdxs_EnzymeSupplyAgreementMember_label_en-US" xlink:label="lab_cdxs_EnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Enzyme Supply Agreement [Member]</link:label>
    <link:label id="lab_cdxs_EnzymeSupplyAgreementMember_documentation_en-US" xlink:label="lab_cdxs_EnzymeSupplyAgreementMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Enzyme Supply Agreement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeSupplyAgreementMember" xlink:href="cdxs-20241231.xsd#cdxs_EnzymeSupplyAgreementMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_EnzymeSupplyAgreementMember" xlink:to="lab_cdxs_EnzymeSupplyAgreementMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_b1b65d60-cca3-4048-ae7d-e7e8e0d32b50_negatedTerseLabel_en-US" xlink:label="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Costs incurred in connection with equity sales agreements</link:label>
    <link:label id="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_label_en-US" xlink:label="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Costs Incurred In Connection With Equity Sales Agreements</link:label>
    <link:label id="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_documentation_en-US" xlink:label="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Costs Incurred In Connection With Equity Sales Agreements</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" xlink:href="cdxs-20241231.xsd#cdxs_CostsIncurredInConnectionWithEquitySalesAgreements"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" xlink:to="lab_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrimeRateMember_label_en-US" xlink:label="lab_us-gaap_PrimeRateMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prime Rate [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrimeRateMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrimeRateMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrimeRateMember" xlink:to="lab_us-gaap_PrimeRateMember" xlink:type="arc" order="1"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>15
<FILENAME>cdxs-20241231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:aef94194-0caa-4e4d-9931-7acc6f219269,g:ad5cae60-29a9-4327-bdf6-2c1f9803d5bd-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.codexis.com/role/CoverPage" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CoverPage"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_6103d5b4-f9ff-4d46-9c41-f805447b4690" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentType_6103d5b4-f9ff-4d46-9c41-f805447b4690" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport_17552b2c-388e-4257-a1f6-1234f9af9cf3" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentAnnualReport_17552b2c-388e-4257-a1f6-1234f9af9cf3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_acc6f61f-9f25-4f5f-86e8-ee8772650040" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentPeriodEndDate_acc6f61f-9f25-4f5f-86e8-ee8772650040" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_df59b705-16df-4fc8-843f-c113c979e105" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_CurrentFiscalYearEndDate_df59b705-16df-4fc8-843f-c113c979e105" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_3080b1c1-5bf5-4951-82cb-d345873865a4" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentTransitionReport_3080b1c1-5bf5-4951-82cb-d345873865a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_d81b1e68-23d6-4eb3-a142-8e487127f596" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityFileNumber_d81b1e68-23d6-4eb3-a142-8e487127f596" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_f5312d2a-7314-4375-b2b2-5fb4603da33f" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityRegistrantName_f5312d2a-7314-4375-b2b2-5fb4603da33f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_a0bac234-f07e-4c1c-9f3f-ef1ddd13e511" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityIncorporationStateCountryCode_a0bac234-f07e-4c1c-9f3f-ef1ddd13e511" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_71e4f121-9146-47f2-8395-80c6b4e287ca" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityTaxIdentificationNumber_71e4f121-9146-47f2-8395-80c6b4e287ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_95aced67-b3c8-4cc4-b37b-807dac1d7082" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityAddressAddressLine1_95aced67-b3c8-4cc4-b37b-807dac1d7082" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_f2b8d141-7d2b-4c1b-8e63-9cd5118dcb61" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityAddressCityOrTown_f2b8d141-7d2b-4c1b-8e63-9cd5118dcb61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_b51cc21b-762b-440a-8013-39494f14c210" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityAddressStateOrProvince_b51cc21b-762b-440a-8013-39494f14c210" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_957f5aa8-5f64-4bb6-84ea-49cc926ecfbc" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityAddressPostalZipCode_957f5aa8-5f64-4bb6-84ea-49cc926ecfbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_ab6decc5-8466-4d09-95db-398990861ec0" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_CityAreaCode_ab6decc5-8466-4d09-95db-398990861ec0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_96c3e8a9-7994-478f-9a6f-207939b1565c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_LocalPhoneNumber_96c3e8a9-7994-478f-9a6f-207939b1565c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_bdd7550d-8907-47db-8ce0-3b92cfc6aeb1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_Security12bTitle_bdd7550d-8907-47db-8ce0-3b92cfc6aeb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_98b05c2a-b241-476c-9dd1-a3e3f0f52a57" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_TradingSymbol_98b05c2a-b241-476c-9dd1-a3e3f0f52a57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_36281260-ecc4-4eed-bb5f-f679db4f7b04" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_SecurityExchangeName_36281260-ecc4-4eed-bb5f-f679db4f7b04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_971eb19e-964a-4dad-b560-1c6c7812aa60" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_971eb19e-964a-4dad-b560-1c6c7812aa60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers_3e636e91-034f-4e2e-9ecb-9a66d0d99478" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityVoluntaryFilers_3e636e91-034f-4e2e-9ecb-9a66d0d99478" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_f1084dd8-9078-4098-b04b-6d77c5c11baa" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityCurrentReportingStatus_f1084dd8-9078-4098-b04b-6d77c5c11baa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_d02056fa-7059-4a33-8196-30509e9427fc" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityInteractiveDataCurrent_d02056fa-7059-4a33-8196-30509e9427fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_75e67685-163b-4f30-a150-c14ebc8a4c58" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityFilerCategory_75e67685-163b-4f30-a150-c14ebc8a4c58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_2d529b8b-cfb6-4b9c-a91a-63359e83883b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntitySmallBusiness_2d529b8b-cfb6-4b9c-a91a-63359e83883b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_8a99b3c3-8f8d-49f8-bdac-48c9e7334a53" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityEmergingGrowthCompany_8a99b3c3-8f8d-49f8-bdac-48c9e7334a53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag_3a80aec6-693c-42eb-94b2-eea758920ace" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_IcfrAuditorAttestationFlag_3a80aec6-693c-42eb-94b2-eea758920ace" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag_59994569-8f14-4953-b440-33b4c5944bb1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentFinStmtErrorCorrectionFlag_59994569-8f14-4953-b440-33b4c5944bb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_25124886-f08d-4132-a40d-ad82ac765798" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityShellCompany_25124886-f08d-4132-a40d-ad82ac765798" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat_11de49e4-3718-47c8-a70b-f90833202b78" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityPublicFloat_11de49e4-3718-47c8-a70b-f90833202b78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_7d5ef6fd-92c7-470d-a480-39b1d8102139" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_7d5ef6fd-92c7-470d-a480-39b1d8102139" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentsIncorporatedByReferenceTextBlock_28f1e257-7a48-4a3d-989f-f76c38d5b1fb" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentsIncorporatedByReferenceTextBlock"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentsIncorporatedByReferenceTextBlock_28f1e257-7a48-4a3d-989f-f76c38d5b1fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_0a238cc8-56da-4abc-a3f0-7271a2c0dbf6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_EntityCentralIndexKey_0a238cc8-56da-4abc-a3f0-7271a2c0dbf6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_cdca3f4b-9a2b-4c9f-a96b-8d40ebdc517b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_AmendmentFlag_cdca3f4b-9a2b-4c9f-a96b-8d40ebdc517b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_97805f2c-bb42-4c60-9c84-5cf535cecbbc" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="34" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentFiscalYearFocus_97805f2c-bb42-4c60-9c84-5cf535cecbbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_cd46b259-d36c-412e-be1a-b457d1093a93" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="35" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_41af91e3-edb0-4fbe-8261-95033e2e9dc6" xlink:to="loc_dei_DocumentFiscalPeriodFocus_cd46b259-d36c-412e-be1a-b457d1093a93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/AuditInformation" xlink:type="simple" xlink:href="cdxs-20241231.xsd#AuditInformation"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/AuditInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AuditorInformationAbstract_42b23779-06a2-48b7-8427-06064b8b02cc" xlink:href="cdxs-20241231.xsd#cdxs_AuditorInformationAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName_a4e49010-25a0-460b-8938-e0252b1d35a6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AuditorInformationAbstract_42b23779-06a2-48b7-8427-06064b8b02cc" xlink:to="loc_dei_AuditorName_a4e49010-25a0-460b-8938-e0252b1d35a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation_bbb6e19e-b201-4ed5-9a1a-a9cd79ca331c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AuditorInformationAbstract_42b23779-06a2-48b7-8427-06064b8b02cc" xlink:to="loc_dei_AuditorLocation_bbb6e19e-b201-4ed5-9a1a-a9cd79ca331c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId_cca77a4a-cc27-423d-9946-81b1f14eca0d" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AuditorInformationAbstract_42b23779-06a2-48b7-8427-06064b8b02cc" xlink:to="loc_dei_AuditorFirmId_cca77a4a-cc27-423d-9946-81b1f14eca0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedBalanceSheets"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_ce8cbe3c-b87d-4a6c-9918-1bf06791ab2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_ce8cbe3c-b87d-4a6c-9918-1bf06791ab2b" xlink:to="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_cf7aef7b-7d55-4840-91ad-adf6f9e57867" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_cf7aef7b-7d55-4840-91ad-adf6f9e57867" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCash_f3dbc7be-fd53-4392-98df-991c74fbd517" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCash"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_RestrictedCash_f3dbc7be-fd53-4392-98df-991c74fbd517" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestments_888adff1-d899-4839-8cd4-c4704602910d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_ShortTermInvestments_888adff1-d899-4839-8cd4-c4704602910d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableGrossCurrent_f28cab36-df7b-43e3-8e2e-c24ca0f1ddc3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableGrossCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:to="loc_us-gaap_AccountsReceivableGrossCurrent_f28cab36-df7b-43e3-8e2e-c24ca0f1ddc3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_bfed820b-5d77-4143-8e9f-adceabe06940" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:to="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_bfed820b-5d77-4143-8e9f-adceabe06940" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_9fabbbb4-139a-4182-af92-a8fe6ed13669" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_9fabbbb4-139a-4182-af92-a8fe6ed13669" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NotesReceivableGross_17507d1a-c293-49cf-a2c8-f35d1b0c8c1a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NotesReceivableGross"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:to="loc_us-gaap_NotesReceivableGross_17507d1a-c293-49cf-a2c8-f35d1b0c8c1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_25fb1456-d4c6-417d-bd71-87932728d324" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForNotesAndLoansReceivableCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:to="loc_us-gaap_AllowanceForNotesAndLoansReceivableCurrent_25fb1456-d4c6-417d-bd71-87932728d324" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_25b97413-f732-41b3-a683-15344b77bfbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesAndLoansReceivableNetCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract_d13e0d00-6be4-4f34-9682-7e4d09eb54b9" xlink:to="loc_us-gaap_AccountsNotesAndLoansReceivableNetCurrent_25b97413-f732-41b3-a683-15344b77bfbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_b08c2d0f-705b-4fce-9a88-c4d0c4d64ac3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_InventoryNet_b08c2d0f-705b-4fce-9a88-c4d0c4d64ac3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_5386aca7-bea0-4271-a5f9-d5a7f8d97c15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_5386aca7-bea0-4271-a5f9-d5a7f8d97c15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_36bc03a9-82e8-4190-a4c3-3856c4fb3f89" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2d5a080a-e47d-47fd-8ac9-be81bbf5466d" xlink:to="loc_us-gaap_AssetsCurrent_36bc03a9-82e8-4190-a4c3-3856c4fb3f89" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent_074dfa01-4350-4a79-9aff-4a302617b5ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent_074dfa01-4350-4a79-9aff-4a302617b5ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsAndOtherNoncurrentAssets_de1b6027-765f-4deb-affc-f5db66e572be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsAndOtherNoncurrentAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_InvestmentsAndOtherNoncurrentAssets_de1b6027-765f-4deb-affc-f5db66e572be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_32926759-b6d5-49de-bad7-de3893383c3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_32926759-b6d5-49de-bad7-de3893383c3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_d359e6f9-cb19-4064-ac6a-411a419baee0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_d359e6f9-cb19-4064-ac6a-411a419baee0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_eb47419a-223f-4e76-9e6b-535b63d69b33" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_Goodwill_eb47419a-223f-4e76-9e6b-535b63d69b33" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_c4e7edbc-9109-4e05-adf5-fbe66816c845" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_c4e7edbc-9109-4e05-adf5-fbe66816c845" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_442a3d49-c0fc-49ad-b778-4d3f06da85ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_2515ab3e-fc61-41b8-9d50-dd63f49dab7a" xlink:to="loc_us-gaap_Assets_442a3d49-c0fc-49ad-b778-4d3f06da85ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_ce8cbe3c-b87d-4a6c-9918-1bf06791ab2b" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_96847f9e-c9a0-4da2-8bf6-4899142cb781" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:to="loc_us-gaap_AccountsPayableCurrent_96847f9e-c9a0-4da2-8bf6-4899142cb781" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_b87b0b08-2e08-4322-9e8f-2bc053a4d279" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:to="loc_us-gaap_EmployeeRelatedLiabilitiesCurrent_b87b0b08-2e08-4322-9e8f-2bc053a4d279" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_7a8625f8-6e17-4b74-94c5-30452ac91e8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_7a8625f8-6e17-4b74-94c5-30452ac91e8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_f525ac67-0714-468f-86b6-5d9b8d2fa2bb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_f525ac67-0714-468f-86b6-5d9b8d2fa2bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_62ce1511-7795-42f7-b03d-3d2846133d7c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_62ce1511-7795-42f7-b03d-3d2846133d7c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_1e2f29f7-7157-4b70-8422-d42cec0e9bb0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_1cdbc16c-48fd-4e0e-88ba-0b12ff1e47c4" xlink:to="loc_us-gaap_LiabilitiesCurrent_1e2f29f7-7157-4b70-8422-d42cec0e9bb0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_d011700a-0152-4ca8-8d23-095201155c2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityNoncurrent_d011700a-0152-4ca8-8d23-095201155c2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_b1a3504a-beac-4ccc-b8a3-18eb791b714f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_b1a3504a-beac-4ccc-b8a3-18eb791b714f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtNoncurrent_efdd546a-d244-4d42-9b1d-02cefec36f1e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_LongTermDebtNoncurrent_efdd546a-d244-4d42-9b1d-02cefec36f1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_9cbf3493-a1ee-4b47-bed3-81add86094ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_9cbf3493-a1ee-4b47-bed3-81add86094ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_79992c9f-2fd5-465a-8dfd-25a7e189725a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_Liabilities_79992c9f-2fd5-465a-8dfd-25a7e189725a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_f1aac45d-4f1b-4fb2-9f84-f37527475316" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_CommitmentsAndContingencies_f1aac45d-4f1b-4fb2-9f84-f37527475316" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValue_19d7d6e3-cbc3-4717-a45c-a0d38d7c4d0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:to="loc_us-gaap_PreferredStockValue_19d7d6e3-cbc3-4717-a45c-a0d38d7c4d0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValue_7acf2d17-c6b4-44de-8466-b369bf345827" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:to="loc_us-gaap_CommonStockValue_7acf2d17-c6b4-44de-8466-b369bf345827" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapital_0368e94f-a0c2-40d1-bbd9-d8136ed90fec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapital"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:to="loc_us-gaap_AdditionalPaidInCapital_0368e94f-a0c2-40d1-bbd9-d8136ed90fec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_49a2d9ac-ed71-4a6e-91db-5f69c7684f94" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_49a2d9ac-ed71-4a6e-91db-5f69c7684f94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_8cd36085-1430-4ff7-bee4-43b3d5cf4c31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_8cd36085-1430-4ff7-bee4-43b3d5cf4c31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_72183973-5d24-4268-b182-192c9824ec9b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_ef097edf-df9d-4df7-b13f-f46f8d0d863c" xlink:to="loc_us-gaap_StockholdersEquity_72183973-5d24-4268-b182-192c9824ec9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_62987613-4871-4b30-92ed-2031a4c48d24" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_b609453a-6811-48d0-b3e9-c9aff4ac4f3f" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_62987613-4871-4b30-92ed-2031a4c48d24" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedBalanceSheetsParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_0420db0c-c307-453e-899b-15b9961dbf35" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_0420db0c-c307-453e-899b-15b9961dbf35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_2dad09c1-5262-4cca-82d2-4e87573b7a39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_2dad09c1-5262-4cca-82d2-4e87573b7a39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_40104bad-d72c-460a-a56b-7b78e7eec0a9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_PreferredStockSharesIssued_40104bad-d72c-460a-a56b-7b78e7eec0a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_323edcca-60f4-4ac6-a490-1f4f67e58a5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_323edcca-60f4-4ac6-a490-1f4f67e58a5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_8874b5dd-012a-4058-803a-6a0d88ed2516" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_8874b5dd-012a-4058-803a-6a0d88ed2516" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_5f573768-902b-4721-9ba4-4cb136b91723" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_5f573768-902b-4721-9ba4-4cb136b91723" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_45fbb913-06ef-452c-849d-d3a1deb01fc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_CommonStockSharesIssued_45fbb913-06ef-452c-849d-d3a1deb01fc7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_ac62cf59-6baf-46b5-bab1-c3c2ae0223a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_bb2fb01f-4d9e-4823-ab8e-1d18d4a18c3d" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_ac62cf59-6baf-46b5-bab1-c3c2ae0223a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofOperations"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperations" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_619f549b-1d11-4995-b287-d2db7cc54338" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_619f549b-1d11-4995-b287-d2db7cc54338" xlink:to="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:to="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_5b94a714-238a-4401-baba-9b79769fd928" xlink:to="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_d62484b2-5744-404d-a4a4-6f2c3f14f417" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:to="loc_us-gaap_ProductMember_d62484b2-5744-404d-a4a4-6f2c3f14f417" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_cf8901c6-27c1-4e3f-9b1b-fe69a2a5f9d2" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_77ff2e9e-c0cd-40ca-ae03-bac7a20405f6" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_cf8901c6-27c1-4e3f-9b1b-fe69a2a5f9d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_49158c8c-ebe0-4103-9b7d-82204c86a07f" xlink:to="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_f5511caa-cb34-4ef2-902a-6bb786b71ed8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_RevenuesAbstract_f5511caa-cb34-4ef2-902a-6bb786b71ed8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c76ad1a5-d237-432b-89de-694b1e6410e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesAbstract_f5511caa-cb34-4ef2-902a-6bb786b71ed8" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c76ad1a5-d237-432b-89de-694b1e6410e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingCostsAndExpensesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_c53790ea-11f0-4d5f-80dd-92501b3681d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_c53790ea-11f0-4d5f-80dd-92501b3681d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_73a033b9-99d2-4014-b011-65dc8dd6c71b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_73a033b9-99d2-4014-b011-65dc8dd6c71b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f38eb68f-af4b-4021-a914-77f23cad7a0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f38eb68f-af4b-4021-a914-77f23cad7a0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_787079e0-c83e-4266-9469-39151e48416c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_RestructuringCharges_787079e0-c83e-4266-9469-39151e48416c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_33939bf1-26ea-4d1a-b868-29f37adc9629" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_AssetImpairmentCharges_33939bf1-26ea-4d1a-b868-29f37adc9629" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAndExpenses_6b31e63a-a9cf-4bfe-99fe-02a9d013e6c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAndExpenses"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingCostsAndExpensesAbstract_246c8f39-ad24-4bc5-977c-bfe9ef1a5ad3" xlink:to="loc_us-gaap_CostsAndExpenses_6b31e63a-a9cf-4bfe-99fe-02a9d013e6c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_d7afca56-d1ab-4aa2-abec-5307d74ebb7d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_OperatingIncomeLoss_d7afca56-d1ab-4aa2-abec-5307d74ebb7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeInterest_70f5d847-6567-49a9-a280-e50c057ef2d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeInterest"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_InvestmentIncomeInterest_70f5d847-6567-49a9-a280-e50c057ef2d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_7b9000c5-491e-48b4-9500-833f12675f9d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_7b9000c5-491e-48b4-9500-833f12675f9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_d59d7bcc-be73-4d02-968b-a3dfbb9dc691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_d59d7bcc-be73-4d02-968b-a3dfbb9dc691" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_10a8a970-f1ae-4e38-9a2a-0fcc75e39f90" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_10a8a970-f1ae-4e38-9a2a-0fcc75e39f90" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_452a653f-3e1f-43d1-81e0-36af742dfa4a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_NetIncomeLoss_452a653f-3e1f-43d1-81e0-36af742dfa4a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_5712a2a3-7ce7-40cd-a032-737a4add53ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_EarningsPerShareBasic_5712a2a3-7ce7-40cd-a032-737a4add53ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_27f39196-6c02-4e0f-b73f-5a075fb46234" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_EarningsPerShareDiluted_27f39196-6c02-4e0f-b73f-5a075fb46234" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_a8f271c4-8ce6-4b38-9671-95919833c260" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_a8f271c4-8ce6-4b38-9671-95919833c260" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_19e55870-3322-4822-8252-cf7b1460a8d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_f9cb52ce-57a9-4bff-8c78-c430a5eae719" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_19e55870-3322-4822-8252-cf7b1460a8d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofOperationsParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_a88ab358-5450-4062-8c8e-510ba890fdf6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_a88ab358-5450-4062-8c8e-510ba890fdf6" xlink:to="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:to="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_4ea120b7-cabf-4ab9-b7a5-325879c5c949" xlink:to="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_cddb12a8-120a-4c1d-a202-4c5803d45f11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:to="loc_us-gaap_ProductMember_cddb12a8-120a-4c1d-a202-4c5803d45f11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_dcf1883f-4a02-4262-a96c-4b3a65073c34" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_7c550c6e-e880-421e-9ee9-5c793f6f434f" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_dcf1883f-4a02-4262-a96c-4b3a65073c34" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_5e1bc9c2-6489-451a-bd45-f6f5087245fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_9d77a8a5-09d7-476f-8bb1-a3f32d4bc36d" xlink:to="loc_us-gaap_RelatedPartyDomain_5e1bc9c2-6489-451a-bd45-f6f5087245fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_b3dce749-4f22-4af5-893a-dd20c287c07e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_5e1bc9c2-6489-451a-bd45-f6f5087245fb" xlink:to="loc_us-gaap_RelatedPartyMember_b3dce749-4f22-4af5-893a-dd20c287c07e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_8b1f8b84-dce1-4730-b493-284b6e05557f" xlink:to="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_14b39bbe-fbb5-4389-a8a0-7fd6a125b197" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_14b39bbe-fbb5-4389-a8a0-7fd6a125b197" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_d889e2d6-487e-4beb-a2a1-02e822ce5a6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_bff9c638-40af-430e-b258-1c7799a6a488" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_d889e2d6-487e-4beb-a2a1-02e822ce5a6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CondensedConsolidatedStatementsofComprehensiveLoss"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_9215f7c4-2b2e-48a4-936a-7931c01732ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_92edada1-c107-4cdc-9205-6ae786693c11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_9215f7c4-2b2e-48a4-936a-7931c01732ee" xlink:to="loc_us-gaap_NetIncomeLoss_92edada1-c107-4cdc-9205-6ae786693c11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_85a1b194-fd26-4ba9-b00e-4452f4b89f00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_9215f7c4-2b2e-48a4-936a-7931c01732ee" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_85a1b194-fd26-4ba9-b00e-4452f4b89f00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_0276afa5-a1e5-4b04-99aa-50d154e74865" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract_85a1b194-fd26-4ba9-b00e-4452f4b89f00" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_0276afa5-a1e5-4b04-99aa-50d154e74865" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_cdbf261a-60f2-4549-90f9-53400e03d4a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_9215f7c4-2b2e-48a4-936a-7931c01732ee" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_cdbf261a-60f2-4549-90f9-53400e03d4a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofStockholdersEquity"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_1ab1a446-845f-442a-9305-cfc2eae70a65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_1ab1a446-845f-442a-9305-cfc2eae70a65" xlink:to="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_b06eb5ea-fa2e-4281-ae2e-8581aac36e18" xlink:to="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_18adf757-df32-479a-835e-318a37a8fab4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_CommonStockMember_18adf757-df32-479a-835e-318a37a8fab4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_fba3b7ef-eab5-4f54-bf25-3f89053761b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_fba3b7ef-eab5-4f54-bf25-3f89053761b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_88d95bfd-1d78-406d-8115-190b9f6f2338" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_88d95bfd-1d78-406d-8115-190b9f6f2338" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_d4d44844-b76e-4290-b8ae-897e167ad79d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_a32d8bbe-be56-453f-acfe-d99e8f0c5c81" xlink:to="loc_us-gaap_RetainedEarningsMember_d4d44844-b76e-4290-b8ae-897e167ad79d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_cbe1557f-3e24-4ca8-9153-863d2cd3bc38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_144c8b9e-f7b5-473d-a304-0660d4ebc47b" xlink:to="loc_us-gaap_StatementLineItems_cbe1557f-3e24-4ca8-9153-863d2cd3bc38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_cbe1557f-3e24-4ca8-9153-863d2cd3bc38" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_0c8932d1-583e-43f3-bb3c-a42f8542f2b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_SharesOutstanding_0c8932d1-583e-43f3-bb3c-a42f8542f2b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_84cced68-d5b0-4614-8eeb-ceefa3d3316b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockholdersEquity_84cced68-d5b0-4614-8eeb-ceefa3d3316b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2a573a8f-da30-4a61-a6f5-e9ce1942d437" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_2a573a8f-da30-4a61-a6f5-e9ce1942d437" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_cf2823c3-9a81-4782-a1af-7bf610e0a13c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_cf2823c3-9a81-4782-a1af-7bf610e0a13c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesOther_bee2972c-1f63-4ec2-95b8-d95de224b0f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesOther"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesOther_bee2972c-1f63-4ec2-95b8-d95de224b0f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued_6c3aa328-c9b5-4471-89e3-d0b2b91e3851" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued_6c3aa328-c9b5-4471-89e3-d0b2b91e3851" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_45710f58-9994-40c4-84c1-37516070d422" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_45710f58-9994-40c4-84c1-37516070d422" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_02dd092f-9f21-4010-8505-b58ca1b28d2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_02dd092f-9f21-4010-8505-b58ca1b28d2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_8f071662-32a5-4f7c-a99c-9cf6c3217eb6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_8f071662-32a5-4f7c-a99c-9cf6c3217eb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_89cfd099-1e05-4735-92aa-3b92e39660e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueNewIssues_89cfd099-1e05-4735-92aa-3b92e39660e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_8f11b75e-8fc5-4efe-aaf6-84afe1b9e549" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_8f11b75e-8fc5-4efe-aaf6-84afe1b9e549" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_06729ace-190f-48c9-a253-76462b7b5a94" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_06729ace-190f-48c9-a253-76462b7b5a94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_74a73ea0-6017-46cd-bfe3-8b9a499a9422" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation_74a73ea0-6017-46cd-bfe3-8b9a499a9422" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d483bbe0-718c-48d9-b448-0a758306c0a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_NetIncomeLoss_d483bbe0-718c-48d9-b448-0a758306c0a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_ab7d2a30-f641-443f-9a73-59b5b3dc2178" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_ab7d2a30-f641-443f-9a73-59b5b3dc2178" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharesOutstanding_f74c9de9-8a62-46f7-a68f-86f3dbb5014f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharesOutstanding"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_SharesOutstanding_f74c9de9-8a62-46f7-a68f-86f3dbb5014f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_29ae0f45-4fd1-47d5-aee1-2cac7b4b0ff3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_693d2604-09f0-4384-bf8e-019246ec9cb0" xlink:to="loc_us-gaap_StockholdersEquity_29ae0f45-4fd1-47d5-aee1-2cac7b4b0ff3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofStockholdersEquityParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_84b48d7f-682a-4fc8-bce3-457d8b69e2f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts_559c727d-c1c4-40bf-9a20-0c17fca84e43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_84b48d7f-682a-4fc8-bce3-457d8b69e2f5" xlink:to="loc_us-gaap_PaymentsOfStockIssuanceCosts_559c727d-c1c4-40bf-9a20-0c17fca84e43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofCashFlows"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlows" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_33635de4-0a81-44df-bf94-0547902b94c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_33635de4-0a81-44df-bf94-0547902b94c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d6b5b9bb-79a3-471b-8368-0b2714d25d8b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_33635de4-0a81-44df-bf94-0547902b94c9" xlink:to="loc_us-gaap_NetIncomeLoss_d6b5b9bb-79a3-471b-8368-0b2714d25d8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_33635de4-0a81-44df-bf94-0547902b94c9" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_ab634a1d-d8e1-4a96-a197-88b8663b4b1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_ab634a1d-d8e1-4a96-a197-88b8663b4b1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_dd93faf5-0907-4340-84a6-b8ab5403f40f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_dd93faf5-0907-4340-84a6-b8ab5403f40f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_e36e3413-b385-481e-9e11-31c949946141" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_ShareBasedCompensation_e36e3413-b385-481e-9e11-31c949946141" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_35f96d24-9945-4f51-8b81-156a2676c35d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_35f96d24-9945-4f51-8b81-156a2676c35d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_e745ea55-0356-4162-8360-eb8867b8fc56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_AssetImpairmentCharges_e745ea55-0356-4162-8360-eb8867b8fc56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_d5d693d9-89f9-4e90-8e66-7eeea9bf3a98" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_d5d693d9-89f9-4e90-8e66-7eeea9bf3a98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_625cd04f-2ca2-4b0a-89aa-325ea2cd2425" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNoncashIncome"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_OtherNoncashIncome_625cd04f-2ca2-4b0a-89aa-325ea2cd2425" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_5fac7458-1b18-49e5-9eed-9a03785bfb2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_5fac7458-1b18-49e5-9eed-9a03785bfb2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfFinancingCosts_8611174f-6aea-40d5-89aa-95a5243a9c00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfFinancingCosts"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_AmortizationOfFinancingCosts_8611174f-6aea-40d5-89aa-95a5243a9c00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AmortizationOfDiscountOnShortTermInvestments_ece82f23-8da4-4981-b1e6-37faf7763440" xlink:href="cdxs-20241231.xsd#cdxs_AmortizationOfDiscountOnShortTermInvestments"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_cdxs_AmortizationOfDiscountOnShortTermInvestments_ece82f23-8da4-4981-b1e6-37faf7763440" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_32617ac7-c9c9-46ea-b708-087bb1bd9239" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherOperatingActivitiesCashFlowStatement"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_OtherOperatingActivitiesCashFlowStatement_32617ac7-c9c9-46ea-b708-087bb1bd9239" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_b6384e8f-2b4b-410d-b0c8-318caf32081e" xlink:to="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_554c57bc-52c5-454f-8dbe-8ccd7a1354cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInFinanceReceivables"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_us-gaap_IncreaseDecreaseInFinanceReceivables_554c57bc-52c5-454f-8dbe-8ccd7a1354cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_b1f3ffc2-0e8d-494b-b9a4-8796d47837a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_b1f3ffc2-0e8d-494b-b9a4-8796d47837a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_868266e1-b314-4af3-98ed-cd09292e3e8b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_868266e1-b314-4af3-98ed-cd09292e3e8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_7046dcf9-e013-4832-b96f-e5e287d2678d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_7046dcf9-e013-4832-b96f-e5e287d2678d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_83c6b954-c1b3-40ce-ab1d-ba0961735a9f" xlink:href="cdxs-20241231.xsd#cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities_83c6b954-c1b3-40ce-ab1d-ba0961735a9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_0bd30625-26a5-4ac4-ada4-3e5fded2d1bb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities_0bd30625-26a5-4ac4-ada4-3e5fded2d1bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_98af2fd8-87f8-465f-b8b4-481b515e889d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_bfb85191-e12b-47ec-a2b7-a9288dcc2bed" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_98af2fd8-87f8-465f-b8b4-481b515e889d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2d04e3e4-3d1b-40bd-93cf-0abbff2b5873" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_33635de4-0a81-44df-bf94-0547902b94c9" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_2d04e3e4-3d1b-40bd-93cf-0abbff2b5873" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_6ace73b3-da6f-41c0-b72b-2c64b1c0564e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_6ace73b3-da6f-41c0-b72b-2c64b1c0564e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_95eb8e9a-6467-4105-9a10-bc5fb5d3a189" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_95eb8e9a-6467-4105-9a10-bc5fb5d3a189" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireShortTermInvestments_94597e1a-6000-4fb8-bb8f-71a75b55e56a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireShortTermInvestments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_PaymentsToAcquireShortTermInvestments_94597e1a-6000-4fb8-bb8f-71a75b55e56a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_8bebd3e8-e849-47d5-ad48-6b54f452d205" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments_8bebd3e8-e849-47d5-ad48-6b54f452d205" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfShortTermInvestments_04392d76-c9cc-4b50-b206-a009c819d44b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfShortTermInvestments"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_ProceedsFromSaleOfShortTermInvestments_04392d76-c9cc-4b50-b206-a009c819d44b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_21afc3e3-bddc-4cc1-aa76-789e507a7659" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_21afc3e3-bddc-4cc1-aa76-789e507a7659" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_a48b98b5-f989-485e-b730-e7212eccacb8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7b23a8e1-1e87-42f4-b9b8-c02fc60b68b1" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_a48b98b5-f989-485e-b730-e7212eccacb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_74dcfc3b-c288-4a96-8129-c2b518b267bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_74dcfc3b-c288-4a96-8129-c2b518b267bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockPlans_5a406475-f473-4ed1-8443-170fbccfb92a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockPlans"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_ProceedsFromStockPlans_5a406475-f473-4ed1-8443-170fbccfb92a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_13d1e083-5cf8-40eb-a1ff-01d12656e242" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfCommonStock_13d1e083-5cf8-40eb-a1ff-01d12656e242" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_b7ba4c87-8003-458b-adcb-92d0c8b7dfba" xlink:href="cdxs-20241231.xsd#cdxs_CostsIncurredInConnectionWithEquitySalesAgreements"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements_b7ba4c87-8003-458b-adcb-92d0c8b7dfba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfLongTermDebt_e35934dd-ba8b-46f1-8d48-6bc11125b39c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfLongTermDebt_e35934dd-ba8b-46f1-8d48-6bc11125b39c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDebtIssuanceCosts_e863933a-e76b-409f-b5a7-df87802a9096" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDebtIssuanceCosts"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_PaymentsOfDebtIssuanceCosts_e863933a-e76b-409f-b5a7-df87802a9096" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_adbe9edd-a191-4ed3-8881-5d4cd793847e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_adbe9edd-a191-4ed3-8881-5d4cd793847e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_4af2f482-a245-406e-9f69-eb58b5a786ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_2a569b6b-755a-47c2-857f-e516f234639c" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_4af2f482-a245-406e-9f69-eb58b5a786ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_8348590f-b2e2-464f-a15c-c39ad6b5f613" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_8348590f-b2e2-464f-a15c-c39ad6b5f613" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_4bf248d5-b0dd-4d0f-9a49-8e86cf2600bb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_4bf248d5-b0dd-4d0f-9a49-8e86cf2600bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_d8d90bf0-b570-42ed-9e6d-2dd37f993b00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_d8d90bf0-b570-42ed-9e6d-2dd37f993b00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalCashFlowInformationAbstract_85a52472-1345-4efc-9f69-41e2e610a0af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalCashFlowInformationAbstract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_SupplementalCashFlowInformationAbstract_85a52472-1345-4efc-9f69-41e2e610a0af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestPaidNet_0886225d-d077-41c7-872a-fb6704f8217f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestPaidNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_85a52472-1345-4efc-9f69-41e2e610a0af" xlink:to="loc_us-gaap_InterestPaidNet_0886225d-d077-41c7-872a-fb6704f8217f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_fd83fdfe-0a7d-4aac-96dc-3e1183a3a37c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SupplementalCashFlowInformationAbstract_85a52472-1345-4efc-9f69-41e2e610a0af" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_fd83fdfe-0a7d-4aac-96dc-3e1183a3a37c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract_22a938b7-145d-4f0b-a91e-b9706260f3b2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract_22a938b7-145d-4f0b-a91e-b9706260f3b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid_01cf1565-e548-44b6-b41f-948dbfada60f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NoncashInvestingAndFinancingItemsAbstract_22a938b7-145d-4f0b-a91e-b9706260f3b2" xlink:to="loc_us-gaap_CapitalExpendituresIncurredButNotYetPaid_01cf1565-e548-44b6-b41f-948dbfada60f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_87093141-aa59-4a51-a623-46137811aeda" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_704a9c3b-2da8-4fb0-86bb-0967a28eb23d" xlink:to="loc_us-gaap_CashAndCashEquivalentsAbstract_87093141-aa59-4a51-a623-46137811aeda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_fccb4aef-9b45-41ed-b947-f9efc25140a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_87093141-aa59-4a51-a623-46137811aeda" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_fccb4aef-9b45-41ed-b947-f9efc25140a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/netLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalents_a5fc305f-9293-4521-9e39-10b8e65d5412" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalents"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_87093141-aa59-4a51-a623-46137811aeda" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalents_a5fc305f-9293-4521-9e39-10b8e65d5412" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_133c20e4-3ed6-4780-8f29-3e8b50d7e548" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_87093141-aa59-4a51-a623-46137811aeda" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_133c20e4-3ed6-4780-8f29-3e8b50d7e548" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="simple" xlink:href="cdxs-20241231.xsd#ConsolidatedStatementsofCashFlowsParenthetical"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_4adbc96e-220f-4823-a059-292a1d9924fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_4adbc96e-220f-4823-a059-292a1d9924fc" xlink:to="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_3a6430f9-a645-4adf-b1e5-b28cbb5eb294" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_8a7d812d-72d2-4c4e-ad1d-d936da700a0a" xlink:to="loc_us-gaap_RelatedPartyDomain_3a6430f9-a645-4adf-b1e5-b28cbb5eb294" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_85216d77-af76-47f6-8f81-b9887785e5f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_3a6430f9-a645-4adf-b1e5-b28cbb5eb294" xlink:to="loc_us-gaap_RelatedPartyMember_85216d77-af76-47f6-8f81-b9887785e5f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_2981ff43-7bd5-4fae-8f94-b5812aaf47d6" xlink:to="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNoncashIncome_c0e82a5c-726b-4ef3-9856-da0360c3eab7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNoncashIncome"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_OtherNoncashIncome_c0e82a5c-726b-4ef3-9856-da0360c3eab7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_37ce8871-21c1-47a1-b3fb-52f2c9a07255" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss_37ce8871-21c1-47a1-b3fb-52f2c9a07255" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestments_0caef5a4-cada-4cca-b280-b910cf07c09e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_ShortTermInvestments_0caef5a4-cada-4cca-b280-b910cf07c09e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_d3fe48f3-1588-498b-bfef-3a69ac51efb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestments"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_4a8568e7-3af2-4087-8144-b5e704cc9d3c" xlink:to="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_d3fe48f3-1588-498b-bfef-3a69ac51efb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DescriptionofBusiness" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DescriptionofBusiness"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DescriptionofBusiness" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_d9f29468-0802-49c8-8043-ac56e1720ee2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NatureOfOperations_527073b6-0d66-4798-9d4d-6281ce6476ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NatureOfOperations"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_d9f29468-0802-49c8-8043-ac56e1720ee2" xlink:to="loc_us-gaap_NatureOfOperations_527073b6-0d66-4798-9d4d-6281ce6476ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPolicies"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_1751fcd2-d33f-45d4-b4b8-98a66498b08f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_b8ba9761-2e64-471a-b907-c98bd44440bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_1751fcd2-d33f-45d4-b4b8-98a66498b08f" xlink:to="loc_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock_b8ba9761-2e64-471a-b907-c98bd44440bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognition"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognition" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_2f6e2f44-610a-4a5e-b110-a85021f7d5c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_76611b81-5d3d-4d1b-836b-25ab18f49c2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_2f6e2f44-610a-4a5e-b110-a85021f7d5c0" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_76611b81-5d3d-4d1b-836b-25ab18f49c2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShare" xlink:type="simple" xlink:href="cdxs-20241231.xsd#NetLossperShare"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/NetLossperShare" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_0a104b28-2090-4433-a1ef-f36345e41d99" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_42e386a6-20e3-43ad-9b0d-d2e581ddecb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_0a104b28-2090-4433-a1ef-f36345e41d99" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_42e386a6-20e3-43ad-9b0d-d2e581ddecb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangements" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CollaborativeArrangements"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentAbstract_fc31a6dc-2cc4-4c41-8b70-22993f2e0384" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock_f23e69d5-9256-41d2-b240-64fac157b301" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CollaborativeArrangementDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentAbstract_fc31a6dc-2cc4-4c41-8b70-22993f2e0384" xlink:to="loc_us-gaap_CollaborativeArrangementDisclosureTextBlock_f23e69d5-9256-41d2-b240-64fac157b301" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecurities" xlink:type="simple" xlink:href="cdxs-20241231.xsd#InvestmentsinNonMarketableSecurities"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecurities" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_b1af6d0b-1d81-46e0-9c2b-9c3cb02cb47d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_9034e764-b704-45fc-a8f0-4a6e7c9fe16b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_b1af6d0b-1d81-46e0-9c2b-9c3cb02cb47d" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_9034e764-b704-45fc-a8f0-4a6e7c9fe16b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurements"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_b9221cb5-7484-4311-8297-c3a8c5b4c187" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_88a9e198-e593-4a04-8ead-62c25cfa8e03" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementInputsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_b9221cb5-7484-4311-8297-c3a8c5b4c187" xlink:to="loc_us-gaap_FairValueMeasurementInputsDisclosureTextBlock_88a9e198-e593-4a04-8ead-62c25cfa8e03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_8ad10b8b-259e-4ed2-a433-1cb8413c69e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_1139497a-9466-448d-b3f8-b44cc312f938" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_8ad10b8b-259e-4ed2-a433-1cb8413c69e0" xlink:to="loc_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_1139497a-9466-448d-b3f8-b44cc312f938" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensation" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensation"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_e867ba98-2831-4e0e-b763-7da7a0b79241" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_15ddcee3-15e3-4433-bbfe-cf439a93ed00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_e867ba98-2831-4e0e-b763-7da7a0b79241" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_15ddcee3-15e3-4433-bbfe-cf439a93ed00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CapitalStock" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CapitalStock"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CapitalStock" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_334bdbc1-841f-4818-86fb-11dd5a022f8b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_27b69f16-1e1d-434c-87d5-0fc3e68a3f53" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_334bdbc1-841f-4818-86fb-11dd5a022f8b" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_27b69f16-1e1d-434c-87d5-0fc3e68a3f53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/A401kPlan" xlink:type="simple" xlink:href="cdxs-20241231.xsd#A401kPlan"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/A401kPlan" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_9472665f-9210-4b25-aca2-886df5bf399c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_86bf5048-4b3b-4441-93e6-b5e6470b1cba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_9472665f-9210-4b25-aca2-886df5bf399c" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_86bf5048-4b3b-4441-93e6-b5e6470b1cba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxes" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxes"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_bd7bf52d-386d-47d4-a589-6523c9597f6d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_bfea16ea-f236-4d30-83e6-879c071c4654" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_bd7bf52d-386d-47d4-a589-6523c9597f6d" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_bfea16ea-f236-4d30-83e6-879c071c4654" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingencies" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingencies"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingencies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_542b6696-3fbc-474d-ad5b-7253b4ec9a9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_0d7aae42-6368-489f-bf33-9b0c230917d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_542b6696-3fbc-474d-ad5b-7253b4ec9a9a" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_0d7aae42-6368-489f-bf33-9b0c230917d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/Debt" xlink:type="simple" xlink:href="cdxs-20241231.xsd#Debt"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/Debt" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureAbstract_af86bbc6-b842-4cca-853f-e3b3508c2c2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureTextBlock_cc1f7e7f-3da0-44c3-a25c-1949dd1c16eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_af86bbc6-b842-4cca-853f-e3b3508c2c2f" xlink:to="loc_us-gaap_DebtDisclosureTextBlock_cc1f7e7f-3da0-44c3-a25c-1949dd1c16eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformation"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_2cd06bea-f6c0-4dfa-8093-93353943fa22" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_8f8ca7aa-0269-4c86-a36b-055bb06fb49a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_2cd06bea-f6c0-4dfa-8093-93353943fa22" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_8f8ca7aa-0269-4c86-a36b-055bb06fb49a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RestructuringCharges"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RestructuringCharges" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_a5cabe4d-8960-45fb-a371-52e14b775e5f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_9009b987-50a2-46db-9fac-b72093557c09" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_a5cabe4d-8960-45fb-a371-52e14b775e5f" xlink:to="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_9009b987-50a2-46db-9fac-b72093557c09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_b5f6a72f-a113-4da5-882b-aecefc1f3a57" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_BasisOfAccountingPolicyPolicyTextBlock_b5f6a72f-a113-4da5-882b-aecefc1f3a57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates_be5534f4-b027-451f-a286-4bc060efd53c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_UseOfEstimates_be5534f4-b027-451f-a286-4bc060efd53c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_8ec5a2c9-8e25-434e-a0db-5946341854f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_8ec5a2c9-8e25-434e-a0db-5946341854f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_9c368264-54b4-4547-b177-3e4630a4b271" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_9c368264-54b4-4547-b177-3e4630a4b271" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpensePolicy_29a69b1b-3979-4539-a9c6-f26931323132" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpensePolicy_29a69b1b-3979-4539-a9c6-f26931323132" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_939d66d5-fb43-417f-8578-e0e2043c561b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_939d66d5-fb43-417f-8578-e0e2043c561b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_28833abf-e191-4b8e-ba5c-4d4dbd256d0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_28833abf-e191-4b8e-ba5c-4d4dbd256d0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_9de31151-3fbb-4468-8657-1720da255ffd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy_9de31151-3fbb-4468-8657-1720da255ffd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_9245a7d2-8bc9-4112-b8e8-86c308e6496c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy_9245a7d2-8bc9-4112-b8e8-86c308e6496c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock_e22509b5-895d-41d2-9e03-70561a5cb33f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_InvestmentPolicyTextBlock_e22509b5-895d-41d2-9e03-70561a5cb33f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_acd8b018-b800-4b11-ab43-fb3ed3e8b146" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_acd8b018-b800-4b11-ab43-fb3ed3e8b146" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskCreditRisk_39afed70-b868-4ea5-843b-3382de03332d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskCreditRisk"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_ConcentrationRiskCreditRisk_39afed70-b868-4ea5-843b-3382de03332d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_749bf36b-3425-45b0-87d0-ccb4d59eecc2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditLossFinancialInstrumentPolicyTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock_749bf36b-3425-45b0-87d0-ccb4d59eecc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_81b931d2-6349-4133-b3d9-558c0eda7261" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy_81b931d2-6349-4133-b3d9-558c0eda7261" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_61e50c4e-debc-4028-944c-c19f52370791" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_61e50c4e-debc-4028-944c-c19f52370791" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_b825e984-afce-4ce4-b69c-452d4369ee06" xlink:href="cdxs-20241231.xsd#cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock_b825e984-afce-4ce4-b69c-452d4369ee06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_98864ab6-3981-4fd6-9466-e6725df6fc87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_98864ab6-3981-4fd6-9466-e6725df6fc87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_81c6add2-d4fa-468d-aa5c-85d439856b52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock_81c6add2-d4fa-468d-aa5c-85d439856b52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_9194ee4a-e51a-484e-9640-38caba1e780e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_9194ee4a-e51a-484e-9640-38caba1e780e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock_4a62eb84-509d-4ad9-aa77-20ed4e90ed00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_LesseeLeasesPolicyTextBlock_4a62eb84-509d-4ad9-aa77-20ed4e90ed00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_5875f584-ced6-44f5-acdd-9d00653828c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_5875f584-ced6-44f5-acdd-9d00653828c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_4fe684a3-036e-4a0c-a0df-419ae9f1e681" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_4fe684a3-036e-4a0c-a0df-419ae9f1e681" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock_cf1fec90-a843-4342-a443-2d7c88ae519f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_8ae21408-e5f2-4c42-89bb-66317b0b04ab" xlink:to="loc_us-gaap_SegmentReportingPolicyPolicyTextBlock_cf1fec90-a843-4342-a443-2d7c88ae519f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_07a2a26b-bf11-48ba-aead-07393d26c328" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_fbbc8144-0623-4b85-8e52-fc402b4038c1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_07a2a26b-bf11-48ba-aead-07393d26c328" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_fbbc8144-0623-4b85-8e52-fc402b4038c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_8fb1beed-cac5-45ec-b97b-8c8bfb94ea87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_81bccc57-8fdd-4a7c-b5f0-4d088ef177a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_8fb1beed-cac5-45ec-b97b-8c8bfb94ea87" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_81bccc57-8fdd-4a7c-b5f0-4d088ef177a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_3e3f3d54-050c-495d-acaf-2ec3fe149d73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_8fb1beed-cac5-45ec-b97b-8c8bfb94ea87" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_3e3f3d54-050c-495d-acaf-2ec3fe149d73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_1faa2989-4abc-4b80-88eb-dbf9958412a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_8fb1beed-cac5-45ec-b97b-8c8bfb94ea87" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_1faa2989-4abc-4b80-88eb-dbf9958412a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShareTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#NetLossperShareTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/NetLossperShareTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_a19d63f4-005e-4a5c-93d2-e76c2d783cc3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_68eef8e5-01e5-4b19-895f-310c3c7a5a25" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_a19d63f4-005e-4a5c-93d2-e76c2d783cc3" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_68eef8e5-01e5-4b19-895f-310c3c7a5a25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#InvestmentsinNonMarketableSecuritiesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_027b3096-691e-4a42-9a36-85f5e49b5dab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_a3cf9d10-bd00-4681-8881-4a638afd0f13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_027b3096-691e-4a42-9a36-85f5e49b5dab" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock_a3cf9d10-bd00-4681-8881-4a638afd0f13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurementsTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_64afd1f6-d8c4-4799-b2c9-fd3f9e7fbdab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_35182bdf-7f88-4a07-9685-e97e022ad543" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_64afd1f6-d8c4-4799-b2c9-fd3f9e7fbdab" xlink:to="loc_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock_35182bdf-7f88-4a07-9685-e97e022ad543" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3b2e469e-b7d0-4be9-a86f-40eeaad467fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_14da0eb0-4a09-4078-963f-469d35fd93a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3b2e469e-b7d0-4be9-a86f-40eeaad467fd" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_14da0eb0-4a09-4078-963f-469d35fd93a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_6c0b47e6-bc1c-425b-a64d-72b967057b5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3b2e469e-b7d0-4be9-a86f-40eeaad467fd" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_6c0b47e6-bc1c-425b-a64d-72b967057b5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_6cf9d1a8-9dbf-434f-90d5-9a29e046b964" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3b2e469e-b7d0-4be9-a86f-40eeaad467fd" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_6cf9d1a8-9dbf-434f-90d5-9a29e046b964" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_1ae6791d-2265-422c-8cfb-40cadf3c285b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3b2e469e-b7d0-4be9-a86f-40eeaad467fd" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_1ae6791d-2265-422c-8cfb-40cadf3c285b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_c39c8161-0ad0-4f41-832a-1c9dc1f9d553" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_c39c8161-0ad0-4f41-832a-1c9dc1f9d553" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_795cd18d-32db-4ca4-9bcf-a9f83788d286" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_795cd18d-32db-4ca4-9bcf-a9f83788d286" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_0ffd4754-04eb-4531-9e76-232dde47cbf1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_0ffd4754-04eb-4531-9e76-232dde47cbf1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_f9db491d-d31c-42a9-8a32-8dd31fc9662f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock_f9db491d-d31c-42a9-8a32-8dd31fc9662f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_43265d7b-c9ab-431d-9740-6d3c4d884cf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_43265d7b-c9ab-431d-9740-6d3c4d884cf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_9000f178-2d12-4b57-8f9e-06dc4326cb1b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock_9000f178-2d12-4b57-8f9e-06dc4326cb1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_b3d469d8-cad9-48e9-bd69-176c104cb1e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_25d3bd23-933a-433a-a612-41a02fecfd1b" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock_b3d469d8-cad9-48e9-bd69-176c104cb1e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_ea721564-184a-41f4-8d47-2d0320b6abbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:to="loc_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_ea721564-184a-41f4-8d47-2d0320b6abbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_b2c24380-c3a1-40c8-a3df-e361b4c9b032" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_b2c24380-c3a1-40c8-a3df-e361b4c9b032" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_1759015f-5f03-40b1-bd2e-37096909d021" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_1759015f-5f03-40b1-bd2e-37096909d021" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_5352b9c2-0ddf-4a11-8663-8ec56144a114" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_5352b9c2-0ddf-4a11-8663-8ec56144a114" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_ffbf67e4-1372-4310-b576-bd6e9c8d892b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:to="loc_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock_ffbf67e4-1372-4310-b576-bd6e9c8d892b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_7a251786-bbd2-4df0-bc48-049ed1dafdc4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e62f94df-5108-4466-b0b2-36427b3f41a0" xlink:to="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_7a251786-bbd2-4df0-bc48-049ed1dafdc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b5f1994-3518-492c-a781-30875ffa1ed9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_66bed611-daa7-44e4-b3a7-75f54282e8e3" xlink:href="cdxs-20241231.xsd#cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b5f1994-3518-492c-a781-30875ffa1ed9" xlink:to="loc_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock_66bed611-daa7-44e4-b3a7-75f54282e8e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCostTableTextBlock_454c6a19-2b3e-4ad4-bf8e-1167c1737c92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCostTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b5f1994-3518-492c-a781-30875ffa1ed9" xlink:to="loc_us-gaap_LeaseCostTableTextBlock_454c6a19-2b3e-4ad4-bf8e-1167c1737c92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_b67cf1dd-c853-43a0-a153-dcafb89fc52d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b5f1994-3518-492c-a781-30875ffa1ed9" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_b67cf1dd-c853-43a0-a153-dcafb89fc52d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DebtTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureAbstract_4b8b6d13-37d0-4fc5-853f-fc0608d0fdcf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDebtInstrumentsTextBlock_059479fb-8333-4796-86f2-26399cd2419c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_4b8b6d13-37d0-4fc5-853f-fc0608d0fdcf" xlink:to="loc_us-gaap_ScheduleOfDebtInstrumentsTextBlock_059479fb-8333-4796-86f2-26399cd2419c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_110f4afb-8e59-4fa1-97e6-3a52cdf3e080" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_4b8b6d13-37d0-4fc5-853f-fc0608d0fdcf" xlink:to="loc_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock_110f4afb-8e59-4fa1-97e6-3a52cdf3e080" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformationTables"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_b87b468c-5211-4254-9a0c-fa89a838a847" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_b852b5d7-808a-41b4-be6b-a3a2d4a99f81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_b87b468c-5211-4254-9a0c-fa89a838a847" xlink:to="loc_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_b852b5d7-808a-41b4-be6b-a3a2d4a99f81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_76b6675a-b55f-4f31-8cd9-7b050f0baa78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_b87b468c-5211-4254-9a0c-fa89a838a847" xlink:to="loc_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock_76b6675a-b55f-4f31-8cd9-7b050f0baa78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_cacbd7a6-2081-4732-bc97-5ecd7e2d2122" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_b87b468c-5211-4254-9a0c-fa89a838a847" xlink:to="loc_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock_cacbd7a6-2081-4732-bc97-5ecd7e2d2122" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DescriptionofBusinessDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DescriptionofBusinessDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DescriptionofBusinessDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_0d2fee32-f417-4336-a764-0b1d83a9105d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_59fdd9d1-7638-4eb3-a241-93a983001b65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_0d2fee32-f417-4336-a764-0b1d83a9105d" xlink:to="loc_us-gaap_NumberOfReportableSegments_59fdd9d1-7638-4eb3-a241-93a983001b65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_2696f42a-e4f6-4475-afbf-d22c28053260" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:href="cdxs-20241231.xsd#cdxs_AccountingPoliciesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_2696f42a-e4f6-4475-afbf-d22c28053260" xlink:to="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_dcbbd466-e0af-40cb-9f58-7d4364b3fb10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityAxis_8fe7e924-60d4-4c79-b4d3-30f35efd5a56" xlink:to="loc_us-gaap_CreditFacilityDomain_dcbbd466-e0af-40cb-9f58-7d4364b3fb10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LetterOfCreditMember_62e0689d-63ad-45a4-9115-af0eab60300c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LetterOfCreditMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityDomain_dcbbd466-e0af-40cb-9f58-7d4364b3fb10" xlink:to="loc_us-gaap_LetterOfCreditMember_62e0689d-63ad-45a4-9115-af0eab60300c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_76aa292f-bd36-4520-b264-a51d713b3913" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_29dedbf1-aa6d-4fab-ad15-3021122577cf" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_76aa292f-bd36-4520-b264-a51d713b3913" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashDepositMember_1ba5da2d-d4ef-463b-9ca7-cdf16e5ead62" xlink:href="cdxs-20241231.xsd#cdxs_CashDepositMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_76aa292f-bd36-4520-b264-a51d713b3913" xlink:to="loc_cdxs_CashDepositMember_1ba5da2d-d4ef-463b-9ca7-cdf16e5ead62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_3bff98f1-476e-4495-9458-04aee39a049b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_17d9775d-238b-46a0-95d8-9637291958dc" xlink:to="loc_srt_NameOfMajorCustomerDomain_3bff98f1-476e-4495-9458-04aee39a049b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FourCustomersMember_1906eb88-1b83-41e1-a623-22e0dd515999" xlink:href="cdxs-20241231.xsd#cdxs_FourCustomersMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_3bff98f1-476e-4495-9458-04aee39a049b" xlink:to="loc_cdxs_FourCustomersMember_1906eb88-1b83-41e1-a623-22e0dd515999" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5cb060c9-6c88-4a49-acb3-bc7b3c9f6e16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_51dbdc7b-1fea-4955-b375-e3f95812d61a" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5cb060c9-6c88-4a49-acb3-bc7b3c9f6e16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_51ea35f4-934c-4165-a20a-861d83d03335" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_5cb060c9-6c88-4a49-acb3-bc7b3c9f6e16" xlink:to="loc_us-gaap_AccountsReceivableMember_51ea35f4-934c-4165-a20a-861d83d03335" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_68690940-3012-4d6b-a4d7-7943f52df60e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_5d1384de-fff1-4f4e-bf76-1fb67b73e3be" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_68690940-3012-4d6b-a4d7-7943f52df60e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_360e91fb-8069-49f0-b5f1-a67994a1e066" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_68690940-3012-4d6b-a4d7-7943f52df60e" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_360e91fb-8069-49f0-b5f1-a67994a1e066" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_fdbaca21-5133-4f69-8508-e1bf65188cb9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_5b30e4d0-7136-4ef7-b047-aafc80330e44" xlink:to="loc_us-gaap_SegmentDomain_fdbaca21-5133-4f69-8508-e1bf65188cb9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember_90e4f6eb-b718-4eee-8500-9fad90de8705" xlink:href="cdxs-20241231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_fdbaca21-5133-4f69-8508-e1bf65188cb9" xlink:to="loc_cdxs_NovelBiotherapeuticsMember_90e4f6eb-b718-4eee-8500-9fad90de8705" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:href="cdxs-20241231.xsd#cdxs_AccountingPoliciesLineItems"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesTable_27955141-c1f2-4222-a722-35eb7267f5d1" xlink:to="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShippingAndDistributionCost_6b403411-8f2e-43f6-8d5f-f65d6d31ff16" xlink:href="cdxs-20241231.xsd#cdxs_ShippingAndDistributionCost"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_cdxs_ShippingAndDistributionCost_6b403411-8f2e-43f6-8d5f-f65d6d31ff16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_784a405f-dfc0-43f3-bd20-5d8f163564eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_AdvertisingExpense_784a405f-dfc0-43f3-bd20-5d8f163564eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashCurrent_32022c55-a824-4c27-942f-5298c843d2fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_RestrictedCashCurrent_32022c55-a824-4c27-942f-5298c843d2fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashNoncurrent_3f4b5837-9e4c-4d4c-a76f-7b5af6c0e40c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_RestrictedCashNoncurrent_3f4b5837-9e4c-4d4c-a76f-7b5af6c0e40c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_97817774-bddb-430c-9985-fc73cba25908" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_97817774-bddb-430c-9985-fc73cba25908" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_f66d5dd3-fa17-430f-99ac-eb6983bd1787" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLongLivedAssetsHeldForUse"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse_f66d5dd3-fa17-430f-99ac-eb6983bd1787" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_924898b3-6bd8-48de-967d-5c2e873086c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_Goodwill_924898b3-6bd8-48de-967d-5c2e873086c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_c7604cf2-2329-48ee-a35d-4a9d7ca66259" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_AccountingPoliciesLineItems_a32ce35a-ae31-4187-8f03-cc4426f21f6d" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_c7604cf2-2329-48ee-a35d-4a9d7ca66259" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_d84bab32-a402-421c-8c11-e91eea0fb278" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_d84bab32-a402-421c-8c11-e91eea0fb278" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_c20f75ba-0320-472d-a67c-e401da962591" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_5391740c-493d-401b-a00a-9d382abb6eeb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:to="loc_us-gaap_EquipmentMember_5391740c-493d-401b-a00a-9d382abb6eeb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_76a8b9eb-fa2d-4b41-8d54-e139cfe85aa9" xlink:href="cdxs-20241231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_76a8b9eb-fa2d-4b41-8d54-e139cfe85aa9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_6d9cf958-48c2-4dbc-bc41-45dd93e78a63" xlink:href="cdxs-20241231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_9d86c252-169b-48d8-8375-e792b4a41a03" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_6d9cf958-48c2-4dbc-bc41-45dd93e78a63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_25b261db-013d-4822-8fe3-becd77dd38af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7b9ec916-a426-4878-9324-9f94e6ac44db" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_25b261db-013d-4822-8fe3-becd77dd38af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_548d0faf-4837-4d2c-a309-eccbfdeef01f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_25b261db-013d-4822-8fe3-becd77dd38af" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_548d0faf-4837-4d2c-a309-eccbfdeef01f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionDisaggregationofRevenueDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_326dcb6f-8bc8-4f72-8da7-d73b7a565398" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_326dcb6f-8bc8-4f72-8da7-d73b7a565398" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:to="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_c4160e83-b77d-41a6-a4ae-717932eca4a2" xlink:to="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_88d8e375-7dba-4e76-9ac0-bde32a92696d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:to="loc_us-gaap_ProductMember_88d8e375-7dba-4e76-9ac0-bde32a92696d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_d5fae3f3-6faa-46d6-b003-91efb4445429" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_4b3603b2-f00d-47f9-892d-e12b90e54ba3" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_d5fae3f3-6faa-46d6-b003-91efb4445429" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:to="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_11e87629-3904-46d9-a297-a32da74ed927" xlink:to="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_9fbe6b55-1377-409e-ba64-401de65cb9c0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:to="loc_srt_AmericasMember_9fbe6b55-1377-409e-ba64-401de65cb9c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_b10966e3-4ce8-483b-8e04-52d629184677" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EMEAMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:to="loc_us-gaap_EMEAMember_b10966e3-4ce8-483b-8e04-52d629184677" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_5fdaa839-cbd1-42d2-828c-159f356d23f3" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AsiaPacificMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_e7a3f01c-eb3b-45c0-9460-663074e8f289" xlink:to="loc_srt_AsiaPacificMember_5fdaa839-cbd1-42d2-828c-159f356d23f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_257498d9-895a-4fad-ac7d-f23a52597b23" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_2e0db431-39b2-4377-9b09-70c2f3b00395" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_257498d9-895a-4fad-ac7d-f23a52597b23" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f08bc11b-dd49-49cd-96d0-d4e7c560a71d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_257498d9-895a-4fad-ac7d-f23a52597b23" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_f08bc11b-dd49-49cd-96d0-d4e7c560a71d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionContractswithCustomerDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_cbd791eb-9e74-4682-8acd-8f4f18ff5f31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_bfe60742-eaf5-4097-9669-9293100e2cb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetGrossCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_cbd791eb-9e74-4682-8acd-8f4f18ff5f31" xlink:to="loc_us-gaap_ContractWithCustomerAssetGrossCurrent_bfe60742-eaf5-4097-9669-9293100e2cb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledContractsReceivable_2c514ed3-2f21-4a94-b36f-3a79b6d2518c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledContractsReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_cbd791eb-9e74-4682-8acd-8f4f18ff5f31" xlink:to="loc_us-gaap_UnbilledContractsReceivable_2c514ed3-2f21-4a94-b36f-3a79b6d2518c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_8d06bb74-f623-4587-a0d9-c0eebc1c034b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_cbd791eb-9e74-4682-8acd-8f4f18ff5f31" xlink:to="loc_us-gaap_ContractWithCustomerLiability_8d06bb74-f623-4587-a0d9-c0eebc1c034b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9a5d3123-c942-4d7b-9aa1-3ab192bbde38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9a5d3123-c942-4d7b-9aa1-3ab192bbde38" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_306145b0-0246-43f3-8551-68d60e65e2a5" xlink:to="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_1810cb89-6f5c-45fe-bde0-dbc5fcea1dae" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:to="loc_srt_MinimumMember_1810cb89-6f5c-45fe-bde0-dbc5fcea1dae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_437b80b4-7f4d-4f01-b40f-3b054f2e6fa8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_df43c1f0-87d2-4c67-8f99-85723ba9995f" xlink:to="loc_srt_MaximumMember_437b80b4-7f4d-4f01-b40f-3b054f2e6fa8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_12cde990-2f8f-4791-8015-158ebcf4e5c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_f3c3c655-4bc8-40a8-ae3c-8b1faa31183d" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_12cde990-2f8f-4791-8015-158ebcf4e5c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_7d350ae0-d4df-4a68-8f5d-afb02775d5bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_12cde990-2f8f-4791-8015-158ebcf4e5c8" xlink:to="loc_us-gaap_AccountsReceivableMember_7d350ae0-d4df-4a68-8f5d-afb02775d5bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReceivableTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis_a527ad10-b776-4d46-9451-1c21ece32410" xlink:to="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShortTermUnbilledReceivablesMember_8454dbfe-2d33-437f-984a-6a4762a4b651" xlink:href="cdxs-20241231.xsd#cdxs_ShortTermUnbilledReceivablesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:to="loc_cdxs_ShortTermUnbilledReceivablesMember_8454dbfe-2d33-437f-984a-6a4762a4b651" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LongTermUnbilledReceivablesMember_de39f34f-e242-4ae5-99de-cd704f060abd" xlink:href="cdxs-20241231.xsd#cdxs_LongTermUnbilledReceivablesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReceivableTypeDomain_2d99f65f-9823-4466-85ce-36b431e2f86a" xlink:to="loc_cdxs_LongTermUnbilledReceivablesMember_de39f34f-e242-4ae5-99de-cd704f060abd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_49aa3ede-54ad-4ddf-821c-55dfc5c66c76" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_ae8e24ac-3a5a-49f6-a74b-5cf59f8b67be" xlink:href="cdxs-20241231.xsd#cdxs_RevenueFromContractWithCustomerPaymentTerms"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_cdxs_RevenueFromContractWithCustomerPaymentTerms_ae8e24ac-3a5a-49f6-a74b-5cf59f8b67be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_4f0e7179-def5-4e08-b53d-fbd5544bbe65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate_4f0e7179-def5-4e08-b53d-fbd5544bbe65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_0321a59b-6686-4cc9-adf4-03de6ffd5fdd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetCreditLossExpense"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2820669f-1198-4562-aa25-1fa6b25e45c5" xlink:to="loc_us-gaap_ContractWithCustomerAssetCreditLossExpense_0321a59b-6686-4cc9-adf4-03de6ffd5fdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionRevenueRecognizedDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f32f0be4-6cb9-42f0-a9ec-6491082d262b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_c3945257-c344-4286-b33f-bc0152de9c62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f32f0be4-6cb9-42f0-a9ec-6491082d262b" xlink:to="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_c3945257-c344-4286-b33f-bc0152de9c62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_01e1f7ae-0c3d-4caa-83c2-3e2932b2476a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract_c3945257-c344-4286-b33f-bc0152de9c62" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_01e1f7ae-0c3d-4caa-83c2-3e2932b2476a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_ac0ee987-ab9b-4fa8-a05a-7d4cdaecd66e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ChangeInContractWithCustomerLiabilityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f32f0be4-6cb9-42f0-a9ec-6491082d262b" xlink:to="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_ac0ee987-ab9b-4fa8-a05a-7d4cdaecd66e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_c6db6b11-d521-45ba-93c3-c20022f79202" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_ac0ee987-ab9b-4fa8-a05a-7d4cdaecd66e" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice_c6db6b11-d521-45ba-93c3-c20022f79202" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_67b38c38-c6a4-4a5f-b755-d4d35667b025" xlink:href="cdxs-20241231.xsd#cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ChangeInContractWithCustomerLiabilityAbstract_ac0ee987-ab9b-4fa8-a05a-7d4cdaecd66e" xlink:to="loc_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition_67b38c38-c6a4-4a5f-b755-d4d35667b025" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_cb750f45-9413-4a79-9544-4960ba541e83" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f32f0be4-6cb9-42f0-a9ec-6491082d262b" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized_cb750f45-9413-4a79-9544-4960ba541e83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RevenueRecognitionPerformanceObligationDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f74c5cf4-4795-4805-b6e6-50e094a3079c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_f74c5cf4-4795-4805-b6e6-50e094a3079c" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:to="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_6b6d0ab7-e4de-48e1-a4d8-3ce9832c5590" xlink:to="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_43df4fc4-9274-4748-82cb-d17ce9a2c78f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_e4761f87-7606-4ab3-baf5-f9cac54f771c" xlink:to="loc_us-gaap_ProductMember_43df4fc4-9274-4748-82cb-d17ce9a2c78f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_5bc73cc0-d2b4-42af-9591-dc348f5d19f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_5bc73cc0-d2b4-42af-9591-dc348f5d19f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_cbc71098-2760-4c2d-9212-fe991b0969ac" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligation_7bbe3b80-999c-4520-8785-33d39aabea37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligation"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligation_7bbe3b80-999c-4520-8785-33d39aabea37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_8ee24347-0866-4337-bf0c-43f66b0f8fc0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_dd4dcd0a-2d12-4d63-a5ab-fef1b6556f5d" xlink:to="loc_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_8ee24347-0866-4337-bf0c-43f66b0f8fc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#NetLossperShareDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/NetLossperShareDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_5f76aae5-4e4b-4e13-b99e-b83f12ffa955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_5f76aae5-4e4b-4e13-b99e-b83f12ffa955" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_76dbfc5f-5c63-476d-bed5-043add7400d6" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockCompensationPlanMember_ccf46781-0186-4c62-85de-993931e5e3d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockCompensationPlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:to="loc_us-gaap_StockCompensationPlanMember_ccf46781-0186-4c62-85de-993931e5e3d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WarrantMember_d858c63a-ff8f-4da8-856f-ee59d04d9afa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WarrantMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:to="loc_us-gaap_WarrantMember_d858c63a-ff8f-4da8-856f-ee59d04d9afa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_9235f35f-d2e7-44a1-84c3-1a1ea959cd6d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_8012a5c8-c308-481a-a82a-00b6639f0838" xlink:to="loc_us-gaap_EmployeeStockMember_9235f35f-d2e7-44a1-84c3-1a1ea959cd6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2c797256-843e-49a5-b457-9197879ae30a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_aebaea39-2bc4-49d9-a992-e3c7ed84702f" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2c797256-843e-49a5-b457-9197879ae30a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_eab02ee7-e68d-48e1-acfa-39f2c564aa28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_2c797256-843e-49a5-b457-9197879ae30a" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_eab02ee7-e68d-48e1-acfa-39f2c564aa28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CollaborativeArrangementsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsAbstract_fbfec366-8613-4ec8-9e12-06379c8a7c60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsAbstract_fbfec366-8613-4ec8-9e12-06379c8a7c60" xlink:to="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_7a88d85a-31ab-4d52-84ca-6ca9b6e2883f" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MerckMember_28ed7ddd-f44b-488b-bdee-024cb4bf957c" xlink:href="cdxs-20241231.xsd#cdxs_MerckMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_MerckMember_28ed7ddd-f44b-488b-bdee-024cb4bf957c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestecLtd.NestleHealthSciencesMember_d0f52cc2-abac-4b4a-807f-1622984a1cdd" xlink:href="cdxs-20241231.xsd#cdxs_NestecLtd.NestleHealthSciencesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_NestecLtd.NestleHealthSciencesMember_d0f52cc2-abac-4b4a-807f-1622984a1cdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NestleHealthScienceMember_0f4e146e-6e3d-453a-960d-17f33ec8d709" xlink:href="cdxs-20241231.xsd#cdxs_NestleHealthScienceMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_NestleHealthScienceMember_0f4e146e-6e3d-453a-960d-17f33ec8d709" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovartisMember_1d119916-be3b-47b5-ae2c-c26e856f6fba" xlink:href="cdxs-20241231.xsd#cdxs_NovartisMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_NovartisMember_1d119916-be3b-47b5-ae2c-c26e856f6fba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RocheMember_03d31d26-3e86-41aa-8fa7-eec09a13900d" xlink:href="cdxs-20241231.xsd#cdxs_RocheMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_RocheMember_03d31d26-3e86-41aa-8fa7-eec09a13900d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TakedaPharmaceuticalCoLtdMember_7070a009-ad35-4a45-8fdb-c0a2988d5e4c" xlink:href="cdxs-20241231.xsd#cdxs_TakedaPharmaceuticalCoLtdMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_TakedaPharmaceuticalCoLtdMember_7070a009-ad35-4a45-8fdb-c0a2988d5e4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_8a151360-195b-4016-98c3-8b53e88922ef" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_MolecularAssembliesIncMember_8a151360-195b-4016-98c3-8b53e88922ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MAIAgreementMember_186cb81b-99a8-4dba-98f5-60eee2ccf2f3" xlink:href="cdxs-20241231.xsd#cdxs_MAIAgreementMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_MAIAgreementMember_186cb81b-99a8-4dba-98f5-60eee2ccf2f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PfizerMember_d16eb63b-c49d-4de4-8018-f5b8b24318df" xlink:href="cdxs-20241231.xsd#cdxs_PfizerMember"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_bfec1c4d-bed1-467f-b1b6-127dd4762672" xlink:to="loc_cdxs_PfizerMember_d16eb63b-c49d-4de4-8018-f5b8b24318df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfArrangementAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ArrangementsAndNonarrangementTransactionsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfArrangementAxis_0ae81756-f37a-4846-8e62-73e94c756d17" xlink:to="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SupplyAgreementMember_0ede227a-69fb-46db-8900-f60a953c8bc9" xlink:href="cdxs-20241231.xsd#cdxs_SupplyAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_SupplyAgreementMember_0ede227a-69fb-46db-8900-f60a953c8bc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeSupplyAgreementMember_2e2966bb-a1f7-4a47-ad27-f703ecbc8c7d" xlink:href="cdxs-20241231.xsd#cdxs_EnzymeSupplyAgreementMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_EnzymeSupplyAgreementMember_2e2966bb-a1f7-4a47-ad27-f703ecbc8c7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_StrategicCollaborationAgreementMember_66984d82-a9fa-45c0-90ac-8b0b7b978338" xlink:href="cdxs-20241231.xsd#cdxs_StrategicCollaborationAgreementMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_StrategicCollaborationAgreementMember_66984d82-a9fa-45c0-90ac-8b0b7b978338" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AcquisitionAgreementMember_7a609c14-d83b-43cf-9d53-78d791f4c852" xlink:href="cdxs-20241231.xsd#cdxs_AcquisitionAgreementMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ArrangementsAndNonarrangementTransactionsMember_64e174c5-5003-48cf-89cb-dbd6124e3fd5" xlink:to="loc_cdxs_AcquisitionAgreementMember_7a609c14-d83b-43cf-9d53-78d791f4c852" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_2ef5e1c7-306c-452d-9a2c-4910a8aabf76" xlink:to="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductMember_c56f69b9-629a-432e-9c73-fc58bea45479" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_us-gaap_ProductMember_c56f69b9-629a-432e-9c73-fc58bea45479" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SitagliptinEnzymeMember_d70abdd8-5dd5-49c7-92e6-0d3daf602a82" xlink:href="cdxs-20241231.xsd#cdxs_SitagliptinEnzymeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_cdxs_SitagliptinEnzymeMember_d70abdd8-5dd5-49c7-92e6-0d3daf602a82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_62762183-e571-4fee-94b0-ce76fc633769" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_62762183-e571-4fee-94b0-ce76fc633769" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RoyaltyMember_02f21eb1-03ba-4e34-bc57-be9551fd3de0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RoyaltyMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_us-gaap_RoyaltyMember_02f21eb1-03ba-4e34-bc57-be9551fd3de0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EnzymeProductMember_5bb0d861-46ff-43c5-8196-4dbdc5591e04" xlink:href="cdxs-20241231.xsd#cdxs_EnzymeProductMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_66b11259-fe56-475e-a927-d038e7b0dee1" xlink:to="loc_cdxs_EnzymeProductMember_5bb0d861-46ff-43c5-8196-4dbdc5591e04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3c8faaa-bcdd-4db8-92b0-e95f0d7eacb6" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_59b57f67-7382-40bf-954f-1ca78ddea0fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:to="loc_us-gaap_SalesRevenueNetMember_59b57f67-7382-40bf-954f-1ca78ddea0fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ComputerEquipmentAndSoftwareMember_580b3799-9463-421f-91e3-882c16be2312" xlink:href="cdxs-20241231.xsd#cdxs_ComputerEquipmentAndSoftwareMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:to="loc_cdxs_ComputerEquipmentAndSoftwareMember_580b3799-9463-421f-91e3-882c16be2312" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerMember_b56894cc-d5fb-4f2c-9035-cac624392b3e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_e561e56a-1daa-4f20-8da4-5b2dfbb72af7" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerMember_b56894cc-d5fb-4f2c-9035-cac624392b3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_3f63355c-1a86-470c-a4d1-7624f9646a29" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_4b37c0e1-5557-4827-abf2-422b5e860906" xlink:href="cdxs-20241231.xsd#cdxs_CollaborativeArrangementConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:to="loc_cdxs_CollaborativeArrangementConcentrationRiskMember_4b37c0e1-5557-4827-abf2-422b5e860906" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_51d93015-56a9-4cff-b611-de675b159f6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_7fec3856-f8c6-4e28-b219-19ff81db3db0" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_51d93015-56a9-4cff-b611-de675b159f6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis_9150f7e9-f256-4dd7-8298-7dbab9e22329" xlink:to="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneOneMember_b5f99a45-81f2-433a-835f-4127dcc48fd6" xlink:href="cdxs-20241231.xsd#cdxs_MilestoneOneMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_MilestoneOneMember_b5f99a45-81f2-433a-835f-4127dcc48fd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestoneTwoMember_7d911942-4118-4436-9d10-1f18fcf34c51" xlink:href="cdxs-20241231.xsd#cdxs_MilestoneTwoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_MilestoneTwoMember_7d911942-4118-4436-9d10-1f18fcf34c51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_UpFrontPaymentMember_3006ade3-85c5-4d8c-bae1-a6e0b438d09a" xlink:href="cdxs-20241231.xsd#cdxs_UpFrontPaymentMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_UpFrontPaymentMember_3006ade3-85c5-4d8c-bae1-a6e0b438d09a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MilestonePaymentPerTargetGeneMember_60251453-f732-4b0f-bc33-6b206aff8ca7" xlink:href="cdxs-20241231.xsd#cdxs_MilestonePaymentPerTargetGeneMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain_4060906d-d14c-43fc-a8ba-fcfe54d1be0a" xlink:to="loc_cdxs_MilestonePaymentPerTargetGeneMember_60251453-f732-4b0f-bc33-6b206aff8ca7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_606755f6-3473-4f37-9aa0-08d3607f210c" xlink:to="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesAPreferredStockMember_f0b1f820-648d-42bf-ad62-da5b073652cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesAPreferredStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:to="loc_us-gaap_SeriesAPreferredStockMember_f0b1f820-648d-42bf-ad62-da5b073652cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_c6320aa2-cb01-4a2e-ac2c-2a56632ab69f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_c6320aa2-cb01-4a2e-ac2c-2a56632ab69f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_9a6ed9e3-a2dd-44cd-bcc7-08d7a1f6d13e" xlink:href="cdxs-20241231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_beefbed2-5d40-466a-8b08-9026e5e8fa0c" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_9a6ed9e3-a2dd-44cd-bcc7-08d7a1f6d13e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionAxis"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionAxis_ac540c64-b3be-41a9-ba02-13e796b8eb61" xlink:to="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_06e60c64-e1f2-42ed-ac5f-e5c95abd0533" xlink:href="cdxs-20241231.xsd#cdxs_CommercializationAndEnzymeSupplyAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:to="loc_cdxs_CommercializationAndEnzymeSupplyAgreementMember_06e60c64-e1f2-42ed-ac5f-e5c95abd0533" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MasterCollaborationResearchAgreementMember_e00055a0-4cb7-412b-b5d1-6a0e0b5b164c" xlink:href="cdxs-20241231.xsd#cdxs_MasterCollaborationResearchAgreementMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionDomain_5c67b60d-c3bb-41e9-95c0-6c037710d3af" xlink:to="loc_cdxs_MasterCollaborationResearchAgreementMember_e00055a0-4cb7-412b-b5d1-6a0e0b5b164c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_530f5765-1df1-4380-8f29-27c4f02e0dcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_b17c765f-3917-4be8-8b0c-57d7080b2897" xlink:to="loc_us-gaap_RelatedPartyDomain_530f5765-1df1-4380-8f29-27c4f02e0dcb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_64a02ed6-cd81-4786-8a9c-03908fbc4d79" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_530f5765-1df1-4380-8f29-27c4f02e0dcb" xlink:to="loc_us-gaap_RelatedPartyMember_64a02ed6-cd81-4786-8a9c-03908fbc4d79" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable_31b08032-f76a-46c7-bb01-94db4dca4535" xlink:to="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_c76652d0-5f09-4fc4-b6b0-6b0df3607082" xlink:href="cdxs-20241231.xsd#cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement_c76652d0-5f09-4fc4-b6b0-6b0df3607082" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_1f012806-bb08-41ae-9a28-9c3b1960cdc2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityRevenueRecognized_1f012806-bb08-41ae-9a28-9c3b1960cdc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_12593098-79b2-4911-a31c-868275fe11e8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_12593098-79b2-4911-a31c-868275fe11e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_544eeb15-c4c9-4416-a64c-eefbe9d017b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_544eeb15-c4c9-4416-a64c-eefbe9d017b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiability_9aa229e8-cf14-45c1-a296-be749ff42334" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_ContractWithCustomerLiability_9aa229e8-cf14-45c1-a296-be749ff42334" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_42bb7c1b-9f08-4491-806a-c72c7fff3987" xlink:href="cdxs-20241231.xsd#cdxs_CollaborativeArrangementUpfrontFeeAmount"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_CollaborativeArrangementUpfrontFeeAmount_42bb7c1b-9f08-4491-806a-c72c7fff3987" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentReceivable_5859a7c4-0df3-4c0c-a934-cb81daadc1fb" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentReceivable"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionContingentReceivable_5859a7c4-0df3-4c0c-a934-cb81daadc1fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_56e985ef-0169-4909-96d4-760e338bb46c" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentAnnualPaymentsTerm"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm_56e985ef-0169-4909-96d4-760e338bb46c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_8c70ef95-0edd-4fd4-aba3-503fc12fd78d" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionContingentAnnualReceivableIncrease"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease_8c70ef95-0edd-4fd4-aba3-503fc12fd78d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionAnnualPayment_6c18b10b-6739-4e7e-9314-94d30192e95c" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionAnnualPayment"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionAnnualPayment_6c18b10b-6739-4e7e-9314-94d30192e95c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_a794e909-5d88-4da7-8b30-a3d6d9d09065" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionNumberOfAnnualPayment"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionNumberOfAnnualPayment_a794e909-5d88-4da7-8b30-a3d6d9d09065" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_8c72af39-f54e-463f-bfdc-23ed03cb97c8" xlink:href="cdxs-20241231.xsd#cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment_8c72af39-f54e-463f-bfdc-23ed03cb97c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfProgramPlans_b8e460fb-734b-4e8f-bb17-8f30bf79fd6c" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfProgramPlans"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_NumberOfProgramPlans_b8e460fb-734b-4e8f-bb17-8f30bf79fd6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_3bc6e9c8-1e66-45de-a287-0cd6c52cb8fc" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance_3bc6e9c8-1e66-45de-a287-0cd6c52cb8fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_0130e8c1-c695-4e7a-98da-a85a91a7dc91" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_0130e8c1-c695-4e7a-98da-a85a91a7dc91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_d6a89146-6f8a-41d6-894a-156a2ec22ff2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_d6a89146-6f8a-41d6-894a-156a2ec22ff2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerSalesMilestone_79cbadd9-ba2f-491a-b8a3-bb7a9e8aba82" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerSalesMilestone"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerSalesMilestone_79cbadd9-ba2f-491a-b8a3-bb7a9e8aba82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_aa936916-103d-45a9-86d9-8e496e47c885" xlink:href="cdxs-20241231.xsd#cdxs_RelatedPartyTransactionMilestonePaymentReceived"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_RelatedPartyTransactionMilestonePaymentReceived_aa936916-103d-45a9-86d9-8e496e47c885" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_9d08a485-95f8-4191-b9ba-b201744edd5a" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_9d08a485-95f8-4191-b9ba-b201744edd5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_0b5ca09c-a2a6-4647-8061-f55c1b697691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized_0b5ca09c-a2a6-4647-8061-f55c1b697691" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_5a967ff5-4a36-47ef-ad35-2131540189e3" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFee"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFee_5a967ff5-4a36-47ef-ad35-2131540189e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_cde6a3a7-f062-4217-99d3-e29505289f80" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage_cde6a3a7-f062-4217-99d3-e29505289f80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_850af128-f28b-4499-8a00-32be554be4fa" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee_850af128-f28b-4499-8a00-32be554be4fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_fe0fc7eb-7340-4129-8de2-738fede0a7a0" xlink:href="cdxs-20241231.xsd#cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems_b226a5a7-68ad-4fe0-bb36-a8b7c560aa2f" xlink:to="loc_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage_fe0fc7eb-7340-4129-8de2-738fede0a7a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#InvestmentsinNonMarketableSecuritiesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_ac1b5b90-a70f-4e8c-8336-b894fe0b4105" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_ac1b5b90-a70f-4e8c-8336-b894fe0b4105" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementClassOfStockAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementClassOfStockAxis_7f4254ed-ce26-4ae3-a7be-fa7c32ed1765" xlink:to="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SeriesBPreferredStockMember_d070f7ce-f3ba-4a2f-ab0c-8ebae92c87ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SeriesBPreferredStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_us-gaap_SeriesBPreferredStockMember_d070f7ce-f3ba-4a2f-ab0c-8ebae92c87ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_2e3f109e-981d-4d2c-a788-290c97b9d444" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_us-gaap_CommonStockMember_2e3f109e-981d-4d2c-a788-290c97b9d444" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesAAndBPreferredStockMember_a677f446-7275-46a0-b680-a8b29a7688a6" xlink:href="cdxs-20241231.xsd#cdxs_SeriesAAndBPreferredStockMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_SeriesAAndBPreferredStockMember_a677f446-7275-46a0-b680-a8b29a7688a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesC1PreferredStockMember_2c1a90b9-3169-4337-a56a-d2792d4334e0" xlink:href="cdxs-20241231.xsd#cdxs_SeriesC1PreferredStockMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_SeriesC1PreferredStockMember_2c1a90b9-3169-4337-a56a-d2792d4334e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CommonStockWarrantsMember_22961ec8-49c4-4663-97af-0366b06f35ce" xlink:href="cdxs-20241231.xsd#cdxs_CommonStockWarrantsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_CommonStockWarrantsMember_22961ec8-49c4-4663-97af-0366b06f35ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeriesCAndC1PreferredStockMember_5a00d9f8-f160-460f-b8cd-4b0fa0cd04dd" xlink:href="cdxs-20241231.xsd#cdxs_SeriesCAndC1PreferredStockMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockDomain_e72153c6-2e24-4348-8a08-a07a4dd36d39" xlink:to="loc_cdxs_SeriesCAndC1PreferredStockMember_5a00d9f8-f160-460f-b8cd-4b0fa0cd04dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EquityMethodInvesteeNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis_938dda29-64ba-4bf2-a847-357bd9470e90" xlink:to="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_d0c9920f-65e5-4dde-8b96-6604661c236b" xlink:href="cdxs-20241231.xsd#cdxs_ArzedaMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:to="loc_cdxs_ArzedaMember_d0c9920f-65e5-4dde-8b96-6604661c236b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_99492861-0813-45ae-a82d-ad0172672956" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_EquityMethodInvesteeNameDomain_eda953b2-0dcc-47d5-b0f5-b65148c35411" xlink:to="loc_cdxs_MolecularAssembliesIncMember_99492861-0813-45ae-a82d-ad0172672956" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CounterpartyNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c448a6b0-5a46-4967-8d57-92dae1c20534" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RepurchaseAgreementCounterpartyNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CounterpartyNameAxis_9950ef70-8d4a-4cc4-a988-163220e8eff2" xlink:to="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c448a6b0-5a46-4967-8d57-92dae1c20534" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_969a49f9-a352-4a8b-ab48-d29c60397cc9" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RepurchaseAgreementCounterpartyNameDomain_c448a6b0-5a46-4967-8d57-92dae1c20534" xlink:to="loc_cdxs_MolecularAssembliesIncMember_969a49f9-a352-4a8b-ab48-d29c60397cc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyDomain_fc15d6df-54c1-417f-90dd-b5dc7e713fb6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_cf051970-9fa1-4fdd-b11a-59abf9ab8a1f" xlink:to="loc_us-gaap_RelatedPartyDomain_fc15d6df-54c1-417f-90dd-b5dc7e713fb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RelatedPartyMember_03996f53-3013-4c90-a59b-5825c32fdeb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RelatedPartyMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RelatedPartyDomain_fc15d6df-54c1-417f-90dd-b5dc7e713fb6" xlink:to="loc_us-gaap_RelatedPartyMember_03996f53-3013-4c90-a59b-5825c32fdeb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_4dcb4396-9e60-489b-88b8-79f64b04be71" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_074705a1-97bc-4474-8315-9b302e0b264f" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:to="loc_cdxs_SeqWellMember_074705a1-97bc-4474-8315-9b302e0b264f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ArzedaMember_1a24ab20-9c6c-4ceb-84dc-d9648e02ad86" xlink:href="cdxs-20241231.xsd#cdxs_ArzedaMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_1e6e5869-1275-4362-8732-a2ebf48765d3" xlink:to="loc_cdxs_ArzedaMember_1a24ab20-9c6c-4ceb-84dc-d9648e02ad86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_785b5000-c8d1-401d-a140-b96be362049d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_3bf87db6-5ad8-43c2-ba55-78c1d2ec2b1f" xlink:to="loc_us-gaap_EquityComponentDomain_785b5000-c8d1-401d-a140-b96be362049d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_2c661ae5-8400-4051-adba-ff57656acffe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_785b5000-c8d1-401d-a140-b96be362049d" xlink:to="loc_us-gaap_CommonStockMember_2c661ae5-8400-4051-adba-ff57656acffe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_882bca4b-84fc-4429-b298-92888be6d749" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_LegalEntityAxis_51fb3816-f3fa-4d9d-b731-1015caca33a6" xlink:to="loc_dei_EntityDomain_882bca4b-84fc-4429-b298-92888be6d749" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_6c990cd7-cb23-4dbd-a00e-5541d1f7193d" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_882bca4b-84fc-4429-b298-92888be6d749" xlink:to="loc_cdxs_SeqWellMember_6c990cd7-cb23-4dbd-a00e-5541d1f7193d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_e01fda74-52ad-428b-be73-88b2baec55bb" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_fcb23c4f-19ef-4a74-8918-ed290afe1e03" xlink:to="loc_srt_ProductsAndServicesDomain_e01fda74-52ad-428b-be73-88b2baec55bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ResearchandDevelopmentRevenueMember_8dd931cb-f219-4dbd-bbad-8f1ec32f72b1" xlink:href="cdxs-20241231.xsd#cdxs_ResearchandDevelopmentRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_e01fda74-52ad-428b-be73-88b2baec55bb" xlink:to="loc_cdxs_ResearchandDevelopmentRevenueMember_8dd931cb-f219-4dbd-bbad-8f1ec32f72b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_a0fb05a6-83f9-4ffa-bc7b-2ef15baba3a7" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_08dee69e-d44f-4740-9251-24a3f05fcc20" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares_08dee69e-d44f-4740-9251-24a3f05fcc20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_eeee0c43-b13a-4f18-81f7-0563ada93275" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion_eeee0c43-b13a-4f18-81f7-0563ada93275" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentOwnedBalanceShares_68ea1b5b-539c-4079-bac6-1058481cccf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentOwnedBalanceShares"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_InvestmentOwnedBalanceShares_68ea1b5b-539c-4079-bac6-1058481cccf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireOtherInvestments_5215036e-8b4f-4cf2-93f6-f33b05fd6743" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireOtherInvestments"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_PaymentsToAcquireOtherInvestments_5215036e-8b4f-4cf2-93f6-f33b05fd6743" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_b90a7c83-9f63-4718-a872-815a701ef5e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1_b90a7c83-9f63-4718-a872-815a701ef5e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_36bea7ff-c9a5-4a13-889b-4043d146efba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_36bea7ff-c9a5-4a13-889b-4043d146efba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_cd28cc35-845e-4280-8c56-a306c59a4edd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_cd28cc35-845e-4280-8c56-a306c59a4edd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_e08857ec-5ace-4f0d-8837-69e054a6a027" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_e08857ec-5ace-4f0d-8837-69e054a6a027" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_9140c4ab-59c2-43fe-855c-61a7185854ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount_9140c4ab-59c2-43fe-855c-61a7185854ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_d1737650-62d7-4e47-a9eb-384bfd98bf8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount_d1737650-62d7-4e47-a9eb-384bfd98bf8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_a8d77a0a-29ef-461c-996a-9d0784fd622b" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived_a8d77a0a-29ef-461c-996a-9d0784fd622b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_84b97c6c-6f21-491d-9a50-a7cb8985ca9b" xlink:href="cdxs-20241231.xsd#cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_ae4e35b1-1e3d-40cd-9b83-297e5b49c691" xlink:to="loc_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount_84b97c6c-6f21-491d-9a50-a7cb8985ca9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_c8b9eb5b-880c-4c1e-8a8b-652c538da50a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract_c8b9eb5b-880c-4c1e-8a8b-652c538da50a" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_7bdc34d4-bed9-4dce-8528-fe8b2a8f21fc" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SeqWellMember_b2821e76-9e07-4516-b724-73b1c3ae8c1a" xlink:href="cdxs-20241231.xsd#cdxs_SeqWellMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:to="loc_cdxs_SeqWellMember_b2821e76-9e07-4516-b724-73b1c3ae8c1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_MolecularAssembliesIncMember_813ce8ac-4dd2-4014-94b2-b0c050d37faa" xlink:href="cdxs-20241231.xsd#cdxs_MolecularAssembliesIncMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:to="loc_cdxs_MolecularAssembliesIncMember_813ce8ac-4dd2-4014-94b2-b0c050d37faa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAggregatedInvestmentsMember_05ab4c16-9c3a-43a8-bd76-147cfd5c35f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAggregatedInvestmentsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_906a0740-351c-40d3-9930-a44e6b8b6c2f" xlink:to="loc_us-gaap_OtherAggregatedInvestmentsMember_05ab4c16-9c3a-43a8-bd76-147cfd5c35f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_3834bc44-4f83-460f-a5a2-7ccae2a2cac3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable_0b9b6bb9-2660-4bd5-9872-7f342d5b86ad" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_3834bc44-4f83-460f-a5a2-7ccae2a2cac3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_4558395c-49ab-4069-bcd3-36ba4bda271b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems_3834bc44-4f83-460f-a5a2-7ccae2a2cac3" xlink:to="loc_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount_4558395c-49ab-4069-bcd3-36ba4bda271b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_ee7dc4aa-c80d-4132-9dc7-b6c2e8dece27" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_ee7dc4aa-c80d-4132-9dc7-b6c2e8dece27" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_3d6b5e7c-5369-4d1f-8dd2-93033120de6e" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsMember_ccb3fbd0-cbff-4c53-8647-28daa6191956" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:to="loc_us-gaap_CashAndCashEquivalentsMember_ccb3fbd0-cbff-4c53-8647-28daa6191956" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_a84560c3-512b-471c-93f3-32f305086604" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_7f3e919e-8788-4186-8337-5b8af014cb36" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_a84560c3-512b-471c-93f3-32f305086604" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f1d8af0d-ecbb-4f0a-b5cc-b71d8019ecff" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_f32edbf7-26c7-4b55-9119-3c0988710280" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_f32edbf7-26c7-4b55-9119-3c0988710280" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_caf96839-31d6-465e-8199-21cfee4a5e2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f0380a66-f0ca-417e-99c4-52cb6ccddc83" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_caf96839-31d6-465e-8199-21cfee4a5e2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_2ec27d7b-dc95-4b49-b847-e239e715f59a" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsMember_2d48121c-93dc-4001-a88e-c0bbe1353262" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_MoneyMarketFundsMember_2d48121c-93dc-4001-a88e-c0bbe1353262" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommercialPaperMember_482eba73-6ba6-42de-abeb-a5f5516978d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommercialPaperMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_CommercialPaperMember_482eba73-6ba6-42de-abeb-a5f5516978d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateDebtSecuritiesMember_b4f0a16a-d32b-4082-9934-ca21d209b43c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateDebtSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_CorporateDebtSecuritiesMember_b4f0a16a-d32b-4082-9934-ca21d209b43c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember_ca2861ec-b75e-4e52-926f-33f11d39f976" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember_ca2861ec-b75e-4e52-926f-33f11d39f976" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_85ad9275-101c-4bd7-a70d-686a2c3ddcc6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_35ffa155-8309-41a3-aa56-052d25ac3ccf" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_85ad9275-101c-4bd7-a70d-686a2c3ddcc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_94d061a0-ac41-47c2-9284-df1dbe91f257" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_e42c1f15-730a-49c0-8236-3893fe1b581d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_Cash_e42c1f15-730a-49c0-8236-3893fe1b581d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_9b3e2d92-1a2b-4c51-9b0a-4155fb4f2033" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_9b3e2d92-1a2b-4c51-9b0a-4155fb4f2033" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ec04a3d6-cea4-481e-b365-216b926accf9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ec04a3d6-cea4-481e-b365-216b926accf9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_b2d63d20-d4be-4534-82c0-8a5ce0e4953d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_b2d63d20-d4be-4534-82c0-8a5ce0e4953d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_e2e864e2-7de2-4b6c-83d7-a0f3afdc1bc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_e2e864e2-7de2-4b6c-83d7-a0f3afdc1bc7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7e416ccb-55d4-4aff-957c-8954f7e972a4" xlink:href="cdxs-20241231.xsd#cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost_7e416ccb-55d4-4aff-957c-8954f7e972a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_f23ed087-21e1-468b-9f84-69cbac309729" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsAndShortTermInvestments"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_593bedb6-4bcb-4602-9f38-970424c27df3" xlink:to="loc_us-gaap_CashCashEquivalentsAndShortTermInvestments_f23ed087-21e1-468b-9f84-69cbac309729" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#FairValueMeasurementsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_69bd1ae0-b18c-48eb-a0ab-a4ce54310a8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_69bd1ae0-b18c-48eb-a0ab-a4ce54310a8d" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_302405ed-318c-44b4-af3a-98e4af197d20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecurityOwnedNotReadilyMarketableNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableAxis_471f7d57-745d-47be-a167-9d11187dc7c8" xlink:to="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_302405ed-318c-44b4-af3a-98e4af197d20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConvertibleDebtMember_c9c9285a-bbe1-4859-b1e8-bc0d9796e897" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConvertibleDebtMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SecurityOwnedNotReadilyMarketableNameDomain_302405ed-318c-44b4-af3a-98e4af197d20" xlink:to="loc_us-gaap_ConvertibleDebtMember_c9c9285a-bbe1-4859-b1e8-bc0d9796e897" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_997774aa-bd73-4408-b9e0-e9cdbf2268aa" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_9de5a324-dd26-4d28-ab7d-2e3ae7d0fa2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff_9de5a324-dd26-4d28-ab7d-2e3ae7d0fa2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_33a539a2-e353-4539-980c-be7e8e564f5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_b831262a-8a16-46d1-a44e-4f8e0382e91a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss_33a539a2-e353-4539-980c-be7e8e564f5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsScheduleofInventoryComponentsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7ed5ab52-9a3d-44a4-a94e-bdb4e8ba5597" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNetAbstract_c603cef0-23e4-446f-8427-0c36dd7a94ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNetAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_7ed5ab52-9a3d-44a4-a94e-bdb4e8ba5597" xlink:to="loc_us-gaap_InventoryNetAbstract_c603cef0-23e4-446f-8427-0c36dd7a94ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterials_2ccfd3e2-036b-4520-9051-9b0d980550c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterials"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_c603cef0-23e4-446f-8427-0c36dd7a94ec" xlink:to="loc_us-gaap_InventoryRawMaterials_2ccfd3e2-036b-4520-9051-9b0d980550c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcess_975cdbdb-125c-44f6-873f-8d4808f9f05d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcess"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_c603cef0-23e4-446f-8427-0c36dd7a94ec" xlink:to="loc_us-gaap_InventoryWorkInProcess_975cdbdb-125c-44f6-873f-8d4808f9f05d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoods_b65cb7a6-5fae-41b3-85d0-b1049e4be5e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoods"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_c603cef0-23e4-446f-8427-0c36dd7a94ec" xlink:to="loc_us-gaap_InventoryFinishedGoods_b65cb7a6-5fae-41b3-85d0-b1049e4be5e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_1254695c-dfac-43fc-b1c6-9bcd965f2ddb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryNetAbstract_c603cef0-23e4-446f-8427-0c36dd7a94ec" xlink:to="loc_us-gaap_InventoryNet_1254695c-dfac-43fc-b1c6-9bcd965f2ddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_45a8508e-0adb-4452-bacd-581476271980" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_45a8508e-0adb-4452-bacd-581476271980" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_bffb8e62-5bd1-4da8-a44f-a2d613ec1b3b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_b43abba7-a680-47b7-9666-5ec28397642b" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_bffb8e62-5bd1-4da8-a44f-a2d613ec1b3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_bc9d9685-94ee-49ec-9ae3-ee64862e0553" xlink:href="cdxs-20241231.xsd#cdxs_SanCarlosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_bffb8e62-5bd1-4da8-a44f-a2d613ec1b3b" xlink:to="loc_cdxs_SanCarlosMember_bc9d9685-94ee-49ec-9ae3-ee64862e0553" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_3e5b7038-d8d5-48b1-ad00-41cfd98821ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_906f99d8-96c2-4702-99ad-3d5eebba0ae1" xlink:to="loc_us-gaap_SegmentDomain_3e5b7038-d8d5-48b1-ad00-41cfd98821ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NovelBiotherapeuticsMember_fdcbdba3-89eb-47eb-8719-d01d1ee3d927" xlink:href="cdxs-20241231.xsd#cdxs_NovelBiotherapeuticsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_3e5b7038-d8d5-48b1-ad00-41cfd98821ad" xlink:to="loc_cdxs_NovelBiotherapeuticsMember_fdcbdba3-89eb-47eb-8719-d01d1ee3d927" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_2acc008c-05a6-4cfb-ad86-8c539186a7db" xlink:to="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseCurrent_aa1dd7f1-beb7-447d-a3ea-a043a669f2f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_PrepaidExpenseCurrent_aa1dd7f1-beb7-447d-a3ea-a043a669f2f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsCurrent_53f8f740-7f45-470f-ae2b-40253ef81026" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_OtherAssetsCurrent_53f8f740-7f45-470f-ae2b-40253ef81026" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_864edcd7-34c2-4412-b457-f0b108e08bab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_AssetImpairmentCharges_864edcd7-34c2-4412-b457-f0b108e08bab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_79c1fc1e-97f0-442a-94a1-70c4d556a22f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_79c1fc1e-97f0-442a-94a1-70c4d556a22f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_365fc266-0af9-400c-b84d-0d40ee7fa8cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_365fc266-0af9-400c-b84d-0d40ee7fa8cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_5d8b701a-8132-4c5d-ba8a-c772477183b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsLineItems_5545d88e-3863-416c-b945-88b15db2e976" xlink:to="loc_us-gaap_Goodwill_5d8b701a-8132-4c5d-ba8a-c772477183b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsPropertyandEquipmentnetDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3be78e03-18f3-4f04-a982-54f14919cca4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_3be78e03-18f3-4f04-a982-54f14919cca4" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_dfe1c41d-3cdd-451e-9cfd-ca5e17e1f495" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LaboratoryEquipmentMember_160bffc9-bc5f-434c-9bd7-01d5a9355d2e" xlink:href="cdxs-20241231.xsd#cdxs_LaboratoryEquipmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_cdxs_LaboratoryEquipmentMember_160bffc9-bc5f-434c-9bd7-01d5a9355d2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_d31ce05d-8540-4ed4-b04f-b3f7eab153d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_d31ce05d-8540-4ed4-b04f-b3f7eab153d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComputerEquipmentMember_d6afd94e-acbb-46f6-a1e0-c26355a2f192" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComputerEquipmentMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_us-gaap_ComputerEquipmentMember_d6afd94e-acbb-46f6-a1e0-c26355a2f192" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OfficeEquipmentAndFurnitureMember_4347b3d3-0cbb-4a52-b9ce-26d7277ada19" xlink:href="cdxs-20241231.xsd#cdxs_OfficeEquipmentAndFurnitureMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_cdxs_OfficeEquipmentAndFurnitureMember_4347b3d3-0cbb-4a52-b9ce-26d7277ada19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConstructionInProgressMember_66f158ae-4834-42a4-871f-4a3faa4f2337" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConstructionInProgressMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d5dfe796-77e6-492f-aa8c-6d43247664fe" xlink:to="loc_us-gaap_ConstructionInProgressMember_66f158ae-4834-42a4-871f-4a3faa4f2337" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_c643a907-06b5-42e4-b5d1-253781959119" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_e26ede90-bbda-427a-9a1c-ca274b297838" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_e26ede90-bbda-427a-9a1c-ca274b297838" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_abc12ab3-5df8-4da4-b917-de0e3c25cfb5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ca271b03-7632-4873-bfbb-549e086667c9" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_abc12ab3-5df8-4da4-b917-de0e3c25cfb5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_65fa6642-92d5-42be-8f97-7392014d2895" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_b19ddbb1-cd69-4068-b7ab-ca9f586320a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_b19ddbb1-cd69-4068-b7ab-ca9f586320a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_32b7cd41-35ad-46a1-8bc1-32658adb1eab" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_32b7cd41-35ad-46a1-8bc1-32658adb1eab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_e721ded7-f501-4920-8c5a-7e00831a7f32" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_d25cde89-21c5-4dbe-89bb-44534fbdcbdf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_e721ded7-f501-4920-8c5a-7e00831a7f32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8b05de21-07ae-46d8-ad70-e58ca37690f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8b05de21-07ae-46d8-ad70-e58ca37690f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_fdb73fee-4eb8-4230-bb94-046621e5c49a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a8a093af-38cf-4dca-bb66-28aa6cc84078" xlink:to="loc_us-gaap_Depreciation_fdb73fee-4eb8-4230-bb94-046621e5c49a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsScheduleofGoodwillDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_b0974deb-4d91-4034-90c8-2bbc65bacff6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_9ec4c574-734c-47d3-ba1d-9bae125ffea3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_b0974deb-4d91-4034-90c8-2bbc65bacff6" xlink:to="loc_us-gaap_GoodwillRollForward_9ec4c574-734c-47d3-ba1d-9bae125ffea3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_8feaccdb-a859-41cd-a10b-e5efb117e8bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_9ec4c574-734c-47d3-ba1d-9bae125ffea3" xlink:to="loc_us-gaap_Goodwill_8feaccdb-a859-41cd-a10b-e5efb117e8bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_df7ce192-07a7-428e-a99f-ab3c876c9b89" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_9ec4c574-734c-47d3-ba1d-9bae125ffea3" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_df7ce192-07a7-428e-a99f-ab3c876c9b89" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_fb2eb983-a42e-4aca-ab4c-baf0aa39d5c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_9ec4c574-734c-47d3-ba1d-9bae125ffea3" xlink:to="loc_us-gaap_Goodwill_fb2eb983-a42e-4aca-ab4c-baf0aa39d5c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#BalanceSheetDetailsOtherAccruedLiabilitiesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_51cbd546-ad80-4de7-9a2b-2c0ae92f0444" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_990fc632-6641-4f48-bdb4-ba27e9d80fea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_51cbd546-ad80-4de7-9a2b-2c0ae92f0444" xlink:to="loc_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent_990fc632-6641-4f48-bdb4-ba27e9d80fea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseObligation_31378cc4-5f64-4bc6-b693-dcaf70bc6aa9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseObligation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_51cbd546-ad80-4de7-9a2b-2c0ae92f0444" xlink:to="loc_us-gaap_PurchaseObligation_31378cc4-5f64-4bc6-b693-dcaf70bc6aa9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_696a8bb4-f632-4b0b-8191-f74991e4be61" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_51cbd546-ad80-4de7-9a2b-2c0ae92f0444" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_696a8bb4-f632-4b0b-8191-f74991e4be61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_f206bf53-ed5a-4572-9db9-b5bf4d8bbaf0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetRelatedDisclosuresAbstract_51cbd546-ad80-4de7-9a2b-2c0ae92f0444" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_f206bf53-ed5a-4572-9db9-b5bf4d8bbaf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_0a7634f6-424f-4362-957c-cae8dddf6f8b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_0a7634f6-424f-4362-957c-cae8dddf6f8b" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_2f4ad6c1-8983-4254-b053-493b406d172c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2024InducementPlanMember_e415dddd-0297-40b7-8b46-4b3cda303a7d" xlink:href="cdxs-20241231.xsd#cdxs_A2024InducementPlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_A2024InducementPlanMember_e415dddd-0297-40b7-8b46-4b3cda303a7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_1ddf4d1f-171a-4a9d-95a4-707accb33087" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_EmployeeStockMember_1ddf4d1f-171a-4a9d-95a4-707accb33087" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_a9deddeb-0dfe-4f25-a886-29f08cf9a502" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_EmployeeStockOptionMember_a9deddeb-0dfe-4f25-a886-29f08cf9a502" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_59d2c03f-4aab-42c2-8cdb-86b08804ce3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_59d2c03f-4aab-42c2-8cdb-86b08804ce3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_ab2074c1-4a8b-4680-9f9e-f6dab1e98525" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_PerformanceSharesMember_ab2074c1-4a8b-4680-9f9e-f6dab1e98525" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceShareUnitsPSUsMember_226957ae-bf8f-4ab4-89ac-6588056c9a4e" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceShareUnitsPSUsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_PerformanceShareUnitsPSUsMember_226957ae-bf8f-4ab4-89ac-6588056c9a4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_7140ceff-4182-4922-ad70-998b06994410" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_7140ceff-4182-4922-ad70-998b06994410" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_068666ed-fae7-42ed-8013-fd00367da002" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_us-gaap_RestrictedStockMember_068666ed-fae7-42ed-8013-fd00367da002" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_e4b42392-43be-4c88-85c6-822421284943" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5005a834-5158-4da4-86db-055d30ca2d73" xlink:to="loc_cdxs_PerformanceStockUnitsMember_e4b42392-43be-4c88-85c6-822421284943" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameAxis_f3af0afb-b46b-4370-8721-cc18bbaceae0" xlink:to="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022InducementPlanMember_da741cc1-8905-4f35-b0b4-511461849bd2" xlink:href="cdxs-20241231.xsd#cdxs_A2022InducementPlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022InducementPlanMember_da741cc1-8905-4f35-b0b4-511461849bd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019PlanMember_a3c16348-6677-43ee-8db5-467bc6302fda" xlink:href="cdxs-20241231.xsd#cdxs_A2019PlanMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2019PlanMember_a3c16348-6677-43ee-8db5-467bc6302fda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019AmendedPlanMember_74ae9f75-d9a7-4088-a134-279b042875cc" xlink:href="cdxs-20241231.xsd#cdxs_A2019AmendedPlanMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2019AmendedPlanMember_74ae9f75-d9a7-4088-a134-279b042875cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2019And2024InducementPlanMember_2a17d36f-74a5-4e1f-b728-180486028969" xlink:href="cdxs-20241231.xsd#cdxs_A2019And2024InducementPlanMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2019And2024InducementPlanMember_2a17d36f-74a5-4e1f-b728-180486028969" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUMember_aa33bbdd-a7b3-4130-b1f9-0b2b72e94a32" xlink:href="cdxs-20241231.xsd#cdxs_A2022PSUMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022PSUMember_aa33bbdd-a7b3-4130-b1f9-0b2b72e94a32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PBOMember_f84890be-849a-4d8c-a348-56a5cd0646a7" xlink:href="cdxs-20241231.xsd#cdxs_A2022PBOMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022PBOMember_f84890be-849a-4d8c-a348-56a5cd0646a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A2022PSUAnd2022PBOMember_c47f704d-8016-4a4b-97aa-52249edee118" xlink:href="cdxs-20241231.xsd#cdxs_A2022PSUAnd2022PBOMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_8d969fd3-7240-442b-82d8-0fc59938169f" xlink:to="loc_cdxs_A2022PSUAnd2022PBOMember_c47f704d-8016-4a4b-97aa-52249edee118" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VestingDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VestingAxis_b0caa07b-d8bf-40bc-97b3-608cb3908e51" xlink:to="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_87ae40d6-6d61-4439-be91-f30570de9c34" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAwardTrancheOneMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheOneMember_87ae40d6-6d61-4439-be91-f30570de9c34" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_ba6233bd-958b-4993-a6cd-99466a7abea2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationAwardTrancheTwoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_VestingDomain_4e4846e7-0596-4224-8af4-ee18285d4947" xlink:to="loc_us-gaap_ShareBasedCompensationAwardTrancheTwoMember_ba6233bd-958b-4993-a6cd-99466a7abea2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_be0887c0-d21b-4fc5-b449-5ffe94649242" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusAxis_a1761f0c-fc7d-4ae7-ba0c-5e73f5201a60" xlink:to="loc_us-gaap_GranteeStatusDomain_be0887c0-d21b-4fc5-b449-5ffe94649242" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ffe2d54e-d3f7-427e-a08e-b77604a507c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusDomain_be0887c0-d21b-4fc5-b449-5ffe94649242" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_ffe2d54e-d3f7-427e-a08e-b77604a507c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_4372f029-ffbb-47e2-a363-90b5533a6faa" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_6453965d-3d64-4704-a759-1f9a4c9b3a17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_6453965d-3d64-4704-a759-1f9a4c9b3a17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_4958099c-692c-4ccf-86c9-4ff14ada6b87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_4958099c-692c-4ccf-86c9-4ff14ada6b87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_8aa1fe71-8db8-47c0-90ee-b8690670e97b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_8aa1fe71-8db8-47c0-90ee-b8690670e97b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_6d897d41-6b6d-4164-9f73-6af712e54482" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance_6d897d41-6b6d-4164-9f73-6af712e54482" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2347908f-eda3-4256-ab41-6cdbe129b74f" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod_2347908f-eda3-4256-ab41-6cdbe129b74f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_13d0a988-8cd4-4bd7-9dbf-dc90bc96730d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent_13d0a988-8cd4-4bd7-9dbf-dc90bc96730d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_7e827899-1dd2-4e3d-867d-f60b5707ebee" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount_7e827899-1dd2-4e3d-867d-f60b5707ebee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_5ef2bf61-0896-45c7-acf4-c7d326f4097d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod_5ef2bf61-0896-45c7-acf4-c7d326f4097d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_45525075-ca26-4bc3-ba41-6cb8c8396025" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_45525075-ca26-4bc3-ba41-6cb8c8396025" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_10aa78cf-d653-4527-9f6f-0573507b4c0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized_10aa78cf-d653-4527-9f6f-0573507b4c0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_4100640c-243f-43a7-a920-25f64b1cfb95" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_4100640c-243f-43a7-a920-25f64b1cfb95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_dffb0321-2e57-4a0b-baf8-ad70bf335363" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_dffb0321-2e57-4a0b-baf8-ad70bf335363" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_2d406242-b9b8-43f0-b5ab-e7603751256d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_2d406242-b9b8-43f0-b5ab-e7603751256d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_b55c1fb7-9c39-45b3-9e94-c3cffbf7a0a6" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService_b55c1fb7-9c39-45b3-9e94-c3cffbf7a0a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d0bf8591-228a-45f9-bebe-45c666523d75" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments_d0bf8591-228a-45f9-bebe-45c666523d75" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_352fa5ac-efb6-48bd-94f3-c6f610d5006a" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier_352fa5ac-efb6-48bd-94f3-c6f610d5006a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_e4382b93-9e16-4266-8154-6cd19748fa4a" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier_e4382b93-9e16-4266-8154-6cd19748fa4a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_9c94a4ce-bae9-4ac2-8b4b-f18f4f4c1325" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_9c94a4ce-bae9-4ac2-8b4b-f18f4f4c1325" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_d91b6961-eaa7-4fdd-9bf9-42825a3fb0a5" xlink:href="cdxs-20241231.xsd#cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate_d91b6961-eaa7-4fdd-9bf9-42825a3fb0a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfOtherFormerExecutive_d0f43297-7684-4722-b693-3d71ecb7b618" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfOtherFormerExecutive"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_NumberOfOtherFormerExecutive_d0f43297-7684-4722-b693-3d71ecb7b618" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfFormerExecutives_19b943e2-249c-47fb-897a-f06af90706b0" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfFormerExecutives"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_NumberOfFormerExecutives_19b943e2-249c-47fb-897a-f06af90706b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_f5b88a05-25d7-4ac9-a219-1856a11eeef9" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease_f5b88a05-25d7-4ac9-a219-1856a11eeef9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e8f223c4-f146-4587-be7f-3e3b2879f201" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_e8f223c4-f146-4587-be7f-3e3b2879f201" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_633ec231-6226-41f0-8c2c-a68a5067f966" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_633ec231-6226-41f0-8c2c-a68a5067f966" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d4587ee-44dc-49f7-b8c7-3d9c7f32c9e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d4587ee-44dc-49f7-b8c7-3d9c7f32c9e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_dd622a8b-5558-41af-a0ac-14764b07b319" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_dd622a8b-5558-41af-a0ac-14764b07b319" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0d0a7bd1-d8f1-47b5-91d1-a32cf6b30ccf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_0d0a7bd1-d8f1-47b5-91d1-a32cf6b30ccf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_aadd68b7-ef3f-4bf9-9f7a-b9bcb870a5ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_aadd68b7-ef3f-4bf9-9f7a-b9bcb870a5ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_bfec5795-b633-4554-88f0-9efaf788e4e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a09f3570-a600-4d5c-a16e-863b345dc188" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions_bfec5795-b633-4554-88f0-9efaf788e4e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationStockBasedCompensationExpenseDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_edc97b96-d097-4f9c-a00c-0e82fba23789" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_edc97b96-d097-4f9c-a00c-0e82fba23789" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_6aee5229-bb25-4f8b-ad33-b644a8e0eca2" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfSalesMember_c59c2a1b-d438-495b-b5bc-6d2673e27ae7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfSalesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:to="loc_us-gaap_CostOfSalesMember_c59c2a1b-d438-495b-b5bc-6d2673e27ae7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6529d202-23e1-4bf3-991c-b57b3faad836" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_6529d202-23e1-4bf3-991c-b57b3faad836" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_d7892019-0a35-4c6a-8ba3-dc0397fce11f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_5c3bdfb0-4a4c-43ae-8922-6c3bada5df48" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpensesMember_d7892019-0a35-4c6a-8ba3-dc0397fce11f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:to="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_2c1ff69b-732e-4301-924d-666b98421806" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_575f9936-676a-49a4-831c-5352b48ed18f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_us-gaap_EmployeeStockOptionMember_575f9936-676a-49a4-831c-5352b48ed18f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_RSUsAndRSAsMember_280740e7-db7f-466b-85f9-489431d3ed0c" xlink:href="cdxs-20241231.xsd#cdxs_RSUsAndRSAsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_cdxs_RSUsAndRSAsMember_280740e7-db7f-466b-85f9-489431d3ed0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_89937058-931b-42ec-9c0e-1250e8fadb5a" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_cdxs_PerformanceStockUnitsMember_89937058-931b-42ec-9c0e-1250e8fadb5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_25842da3-742a-4c4c-890a-760e5c8d38d5" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_25842da3-742a-4c4c-890a-760e5c8d38d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_320fa6e0-f03f-4043-9c0b-818249e5d70d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9fcfa8e9-2b22-49f4-8187-1430ac590b22" xlink:to="loc_us-gaap_EmployeeStockMember_320fa6e0-f03f-4043-9c0b-818249e5d70d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_de61e745-b350-43be-b82c-6eed997b56e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_b7192cf5-ebf9-407d-9ef9-5ff0c907a3b5" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_de61e745-b350-43be-b82c-6eed997b56e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_20457861-76d5-40b1-a0af-f81cea7c83f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensation"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_de61e745-b350-43be-b82c-6eed997b56e9" xlink:to="loc_us-gaap_ShareBasedCompensation_20457861-76d5-40b1-a0af-f81cea7c83f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationAssumptionsUsedDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_94de3f0a-edaa-42f6-b74e-167b4effd955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_94de3f0a-edaa-42f6-b74e-167b4effd955" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:to="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_d61c76e4-d1d6-43ab-aa03-c0c51e9a4f3f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_a7d37f21-b9cd-4962-a4c7-fc3640d53d21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_us-gaap_EmployeeStockOptionMember_a7d37f21-b9cd-4962-a4c7-fc3640d53d21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_de70cbdf-55ab-4052-a9c0-d65f4cb70678" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_de70cbdf-55ab-4052-a9c0-d65f4cb70678" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_fbe56d7c-0ba5-4163-b2af-22396995f9ff" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_fbe56d7c-0ba5-4163-b2af-22396995f9ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockMember_a962e0fa-e61a-4f07-9d92-60875b7d77cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc94c9b0-c660-43d8-a54f-7765e567a2a0" xlink:to="loc_us-gaap_EmployeeStockMember_a962e0fa-e61a-4f07-9d92-60875b7d77cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:to="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GranteeStatusDomain_dd85d348-5f4d-464a-afa2-c2f7cfedbe2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GranteeStatusDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusAxis_07855704-13b6-44a5-b521-31978ccbb688" xlink:to="loc_us-gaap_GranteeStatusDomain_dd85d348-5f4d-464a-afa2-c2f7cfedbe2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_15afb656-0398-4d72-b75e-da1d8dcefaf8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedPaymentArrangementNonemployeeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GranteeStatusDomain_dd85d348-5f4d-464a-afa2-c2f7cfedbe2c" xlink:to="loc_us-gaap_ShareBasedPaymentArrangementNonemployeeMember_15afb656-0398-4d72-b75e-da1d8dcefaf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_8e827f6f-d15c-4cfa-b326-0152b4cb4485" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_4ceac51d-0405-4030-8d2b-191b83cea837" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_4ceac51d-0405-4030-8d2b-191b83cea837" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_143671f9-7a1b-4ed1-8a85-6eb3ef1e65bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_143671f9-7a1b-4ed1-8a85-6eb3ef1e65bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ad8e89fb-2ac4-48e6-a140-37b8db2f40d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ad8e89fb-2ac4-48e6-a140-37b8db2f40d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_99fc6448-e614-4b0c-8b89-6b53f01da2e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_b87a20e1-651c-40b1-9202-8788876436a0" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_99fc6448-e614-4b0c-8b89-6b53f01da2e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationOptionActivityDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_edf82dec-646c-4460-91d5-764dec73898d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_edf82dec-646c-4460-91d5-764dec73898d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_170a3c3b-30e8-43b9-b417-b69c28863d8f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_170a3c3b-30e8-43b9-b417-b69c28863d8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_bb2375e3-ba9e-4936-83f9-1599c95022ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_bb2375e3-ba9e-4936-83f9-1599c95022ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_359b595e-80ba-41cc-89d9-03599c474afc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_359b595e-80ba-41cc-89d9-03599c474afc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_898fb3f9-c420-4a9e-9460-f1e018ef518e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_c6ca9a02-af2d-4125-9c76-0a1654660e11" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_898fb3f9-c420-4a9e-9460-f1e018ef518e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_3aa62318-c23f-4d17-aada-8285bab9f9b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_3aa62318-c23f-4d17-aada-8285bab9f9b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_ba4fa371-4c94-4df8-85cf-bdcdc430af12" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_ba4fa371-4c94-4df8-85cf-bdcdc430af12" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_ece71eb3-2fe1-4875-b06f-b3cde5fd5130" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_ece71eb3-2fe1-4875-b06f-b3cde5fd5130" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_44c00869-06ab-4cc6-80ee-159117445f10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_44c00869-06ab-4cc6-80ee-159117445f10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_933c8193-da07-472b-860b-66f8fbb20dbc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_933c8193-da07-472b-860b-66f8fbb20dbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_25a5e521-b086-4835-8c18-0643d3562bfc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_25a5e521-b086-4835-8c18-0643d3562bfc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_577b84b8-dd14-49d5-b1a9-f017ee898380" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_57101cf9-f447-4e3c-b8af-866a0776421a" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_577b84b8-dd14-49d5-b1a9-f017ee898380" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_e4b45e63-bd8c-46ea-bd30-e499d6795ddb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_e4b45e63-bd8c-46ea-bd30-e499d6795ddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5fb3f4cf-d423-4ce5-a2d2-6f656b7d26de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_5fb3f4cf-d423-4ce5-a2d2-6f656b7d26de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_dbde9d3c-89c5-49ac-8dad-be3b92773df9" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_ca4ac711-db02-4847-bf7d-f73d8f695afa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_ca4ac711-db02-4847-bf7d-f73d8f695afa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_3b0555d6-68ce-4fe6-8a54-108babb675b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_3b0555d6-68ce-4fe6-8a54-108babb675b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_5d4c7711-6156-4fbf-9a80-73692a0cb79e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_5d4c7711-6156-4fbf-9a80-73692a0cb79e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_2eb2c7d7-e3bb-4661-818c-21a7c3b6333c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_2eb2c7d7-e3bb-4661-818c-21a7c3b6333c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_8a459c9d-e2b1-4fe9-846f-ec174c63d9a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_8a459c9d-e2b1-4fe9-846f-ec174c63d9a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_49d41010-3ea5-404b-8994-fc088d05274b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_a0616882-0318-4e12-a339-86d63da03998" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_49d41010-3ea5-404b-8994-fc088d05274b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#StockbasedCompensationAwardActivityDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_fd5502eb-3d64-417a-b928-11097bdd1c68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_fd5502eb-3d64-417a-b928-11097bdd1c68" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:to="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_27de45c6-dc56-468c-b1fe-1bbd7a6cdb10" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_02dd033b-afde-4949-867f-599ce05a2545" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_us-gaap_RestrictedStockMember_02dd033b-afde-4949-867f-599ce05a2545" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_d1aa76c2-9f1c-4237-ba1b-735418a1c637" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_d1aa76c2-9f1c-4237-ba1b-735418a1c637" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceStockUnitsMember_5a599f69-76cc-4bcb-aa5a-5696c8813b0f" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceStockUnitsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_cdxs_PerformanceStockUnitsMember_5a599f69-76cc-4bcb-aa5a-5696c8813b0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PerformanceBasedOptionsPBOsMember_a1ae3fb6-e7e0-4de1-8c42-2a736efa9aa6" xlink:href="cdxs-20241231.xsd#cdxs_PerformanceBasedOptionsPBOsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_55c8d587-dd94-4b37-9de4-903ce0eb45e2" xlink:to="loc_cdxs_PerformanceBasedOptionsPBOsMember_a1ae3fb6-e7e0-4de1-8c42-2a736efa9aa6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_3272d8b0-b7cd-40dc-988b-3450e0d8a863" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_fc457d4a-7fae-4e94-a42e-89fac0547f64" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_fc457d4a-7fae-4e94-a42e-89fac0547f64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_114c6dcb-2192-403c-a40b-1ebb2e192b9b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_114c6dcb-2192-403c-a40b-1ebb2e192b9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_3d20eda9-52ef-49df-aa26-f91eb1947a81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_3d20eda9-52ef-49df-aa26-f91eb1947a81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4d0bd53e-cb4b-4e45-9e45-f326620ff62d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4d0bd53e-cb4b-4e45-9e45-f326620ff62d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_b91fc56c-4d64-48cd-82f7-440879f0083f" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod_b91fc56c-4d64-48cd-82f7-440879f0083f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_d46fb7d9-8c99-4793-ab13-2730165e50e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_a02a3132-8dec-4b59-bed8-2837bc652821" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_d46fb7d9-8c99-4793-ab13-2730165e50e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d03cb89b-2f00-4d12-80f2-71681f100c45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d03cb89b-2f00-4d12-80f2-71681f100c45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d1e9fcb-e355-4f70-9aea-159535f76896" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_8d1e9fcb-e355-4f70-9aea-159535f76896" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_6d8c25e5-de11-491b-880e-de26b4f30c17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_6d8c25e5-de11-491b-880e-de26b4f30c17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_79fd49ab-aafb-48a5-bae6-05b716ca53f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_79fd49ab-aafb-48a5-bae6-05b716ca53f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_84522c2b-a70e-4eb4-a4b6-c7ecd9fc7956" xlink:href="cdxs-20241231.xsd#cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue_84522c2b-a70e-4eb4-a4b6-c7ecd9fc7956" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_c5a4c466-686c-4e8f-b6bb-9d513fc1d569" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_ec9523a9-022b-4397-a6d8-e1d1ed9e5dc1" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_c5a4c466-686c-4e8f-b6bb-9d513fc1d569" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_37e15538-1e26-4c38-a6b5-e4a7601c3ef3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_6d3b3427-412e-425c-a8f1-47b7c406da5a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_6d3b3427-412e-425c-a8f1-47b7c406da5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_f27a3382-17a3-4007-bc52-b6c7ca9ef80d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_f27a3382-17a3-4007-bc52-b6c7ca9ef80d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_0713db6e-138a-4820-9af4-b2bf9b50b4de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_0713db6e-138a-4820-9af4-b2bf9b50b4de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_53102599-3ee2-49d7-b076-94dd620ca704" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_53102599-3ee2-49d7-b076-94dd620ca704" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_c81cfd75-3e02-41ab-911f-30fb4b69420c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_c81cfd75-3e02-41ab-911f-30fb4b69420c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_5f1b81c1-7d2c-485f-8861-9d797527a043" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_5f1b81c1-7d2c-485f-8861-9d797527a043" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_ac53fb93-8f30-4965-940e-830ea2538204" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_ac53fb93-8f30-4965-940e-830ea2538204" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_8cb9eb35-6720-444b-86f4-8b8f87976c15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract_e033dcf1-8347-4172-8bcf-7c0ed3bf68c5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_8cb9eb35-6720-444b-86f4-8b8f87976c15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CapitalStockDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CapitalStockDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CapitalStockDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_3928e322-c0e5-4241-9071-13a9512a5e02" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_3928e322-c0e5-4241-9071-13a9512a5e02" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_LegalEntityAxis_b1cde81d-fdae-460e-a982-dedc9d6ce385" xlink:to="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PiperSandlerCoMember_e06263e2-bc95-4def-aa3e-eb0ae2ca10b2" xlink:href="cdxs-20241231.xsd#cdxs_PiperSandlerCoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:to="loc_cdxs_PiperSandlerCoMember_e06263e2-bc95-4def-aa3e-eb0ae2ca10b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CantorMember_aab19d2d-eaa9-4ac7-9654-fc0331d898f0" xlink:href="cdxs-20241231.xsd#cdxs_CantorMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_EntityDomain_3f65cf14-586a-4add-b0cc-1986ae83a286" xlink:to="loc_cdxs_CantorMember_aab19d2d-eaa9-4ac7-9654-fc0331d898f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_34dbe257-6ee6-4941-818e-10c4bfa7aa7d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_89da3a8f-4a65-4479-84c1-cd26d8a4e954" xlink:to="loc_srt_RangeMember_34dbe257-6ee6-4941-818e-10c4bfa7aa7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_8414fc9e-4968-4652-beab-3b99bb51b491" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_34dbe257-6ee6-4941-818e-10c4bfa7aa7d" xlink:to="loc_srt_MaximumMember_8414fc9e-4968-4652-beab-3b99bb51b491" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsidiarySaleOfStockAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockNameOfTransactionDomain_39b0b470-cf1b-4ec9-93e8-dcaf01feb855" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockNameOfTransactionDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsidiarySaleOfStockAxis_7590f73e-1ced-479c-afa8-1bd0cb466833" xlink:to="loc_us-gaap_SaleOfStockNameOfTransactionDomain_39b0b470-cf1b-4ec9-93e8-dcaf01feb855" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CantorSalesAgreementMember_68bd68b6-56af-451b-a1bd-b4f57ac64ecd" xlink:href="cdxs-20241231.xsd#cdxs_CantorSalesAgreementMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SaleOfStockNameOfTransactionDomain_39b0b470-cf1b-4ec9-93e8-dcaf01feb855" xlink:to="loc_cdxs_CantorSalesAgreementMember_68bd68b6-56af-451b-a1bd-b4f57ac64ecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_3b663c1b-781a-452f-9b81-1bedf323cd71" xlink:to="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_e18c03cc-3a7e-44ec-bf04-b222886a7609" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount_e18c03cc-3a7e-44ec-bf04-b222886a7609" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockPeriod_e25a65c1-78a1-45ce-bcdd-90c862e8cfd9" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockPeriod_e25a65c1-78a1-45ce-bcdd-90c862e8cfd9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockValueOfSharesForIssuance_75d09f4d-f67c-4c87-96c5-1a8c9d856709" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockValueOfSharesForIssuance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockValueOfSharesForIssuance_75d09f4d-f67c-4c87-96c5-1a8c9d856709" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_21350ba4-85ac-427f-804a-afcba10b705c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesNewIssues_21350ba4-85ac-427f-804a-afcba10b705c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_8ea1ac57-246b-46a3-a932-5eb556326ad4" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockConsiderationReceivedOnTransactionGross"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross_8ea1ac57-246b-46a3-a932-5eb556326ad4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_d042c778-97c4-4949-983f-5d71067613e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SaleOfStockConsiderationReceivedOnTransaction"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_SaleOfStockConsiderationReceivedOnTransaction_d042c778-97c4-4949-983f-5d71067613e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfStockIssuanceCosts_1b8b3809-a142-44e4-9c8c-b38ff1cafd64" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfStockIssuanceCosts"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_us-gaap_PaymentsOfStockIssuanceCosts_1b8b3809-a142-44e4-9c8c-b38ff1cafd64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SaleOfStockCommissionFeePercent_4324ec87-2f39-438a-b149-b332302c201e" xlink:href="cdxs-20241231.xsd#cdxs_SaleOfStockCommissionFeePercent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_6897899e-c654-48c7-a462-f001017ad1d1" xlink:to="loc_cdxs_SaleOfStockCommissionFeePercent_4324ec87-2f39-438a-b149-b332302c201e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/A401kPlanDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#A401kPlanDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/A401kPlanDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_da113d93-458b-4187-8492-d2b4a6a70b83" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DefinedContributionPlanParticipantEligibilityAge_0d031de0-65b2-490f-84a1-b5d546a4e93c" xlink:href="cdxs-20241231.xsd#cdxs_DefinedContributionPlanParticipantEligibilityAge"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_da113d93-458b-4187-8492-d2b4a6a70b83" xlink:to="loc_cdxs_DefinedContributionPlanParticipantEligibilityAge_0d031de0-65b2-490f-84a1-b5d546a4e93c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_1eb70a50-614e-4764-b1f9-2e02ec9373d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_da113d93-458b-4187-8492-d2b4a6a70b83" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_1eb70a50-614e-4764-b1f9-2e02ec9373d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_11323ee6-4aa5-42ec-be85-f28997dae914" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_540283a6-1aac-4b70-921b-563c7c38ce3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_11323ee6-4aa5-42ec-be85-f28997dae914" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_540283a6-1aac-4b70-921b-563c7c38ce3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_b3e58480-891a-4988-b087-68496ca829ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_11323ee6-4aa5-42ec-be85-f28997dae914" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_b3e58480-891a-4988-b087-68496ca829ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_017df333-1c71-435a-b8e5-fd45a0a41c97" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_11323ee6-4aa5-42ec-be85-f28997dae914" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_017df333-1c71-435a-b8e5-fd45a0a41c97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_7bd946a0-5a9e-49e6-81fe-b4b1add530af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_8717d52a-e41c-4684-93ac-525c77075922" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7bd946a0-5a9e-49e6-81fe-b4b1add530af" xlink:to="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_8717d52a-e41c-4684-93ac-525c77075922" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_e36d3b4e-8f68-4980-b454-50299b3df04f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_8717d52a-e41c-4684-93ac-525c77075922" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_e36d3b4e-8f68-4980-b454-50299b3df04f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_2c8a9770-1469-4898-a7c0-f94b7fcc877f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_e36d3b4e-8f68-4980-b454-50299b3df04f" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_2c8a9770-1469-4898-a7c0-f94b7fcc877f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_4d37d2a2-99b7-45e3-87a7-1e1d1efac6df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_e36d3b4e-8f68-4980-b454-50299b3df04f" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_4d37d2a2-99b7-45e3-87a7-1e1d1efac6df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_99a41136-bc06-456c-8883-c0a9fb90507b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_e36d3b4e-8f68-4980-b454-50299b3df04f" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_99a41136-bc06-456c-8883-c0a9fb90507b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ff791d29-c5e6-4637-8fcc-68e0707cfb80" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_8717d52a-e41c-4684-93ac-525c77075922" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ff791d29-c5e6-4637-8fcc-68e0707cfb80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_16878e1c-8b55-4503-aad8-0c0d73ae0ea3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ff791d29-c5e6-4637-8fcc-68e0707cfb80" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_16878e1c-8b55-4503-aad8-0c0d73ae0ea3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_dd4f479f-d936-491f-bf9e-90956591db76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ff791d29-c5e6-4637-8fcc-68e0707cfb80" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_dd4f479f-d936-491f-bf9e-90956591db76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_7d404012-bdc4-4dca-bf0a-4373587bc3d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract_8717d52a-e41c-4684-93ac-525c77075922" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_7d404012-bdc4-4dca-bf0a-4373587bc3d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesTaxRateReconciliationDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_0cc8ba3e-1947-40dd-9eb8-87a7b6fc5019" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0cc8ba3e-1947-40dd-9eb8-87a7b6fc5019" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_5338260c-8a6d-4dd1-9ddd-f34f8cd77cbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_5338260c-8a6d-4dd1-9ddd-f34f8cd77cbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_596e5311-9012-4cae-b35c-dcd9a9a783cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes_596e5311-9012-4cae-b35c-dcd9a9a783cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_c29f3d2c-516a-4088-a6f8-c9e08d048a64" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationTaxCreditsResearch"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxCreditsResearch_c29f3d2c-516a-4088-a6f8-c9e08d048a64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_a4e2babd-2bbc-4767-a538-409b028af50e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential_a4e2babd-2bbc-4767-a538-409b028af50e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_89eebf05-d897-488c-b56c-38408a4d3718" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_89eebf05-d897-488c-b56c-38408a4d3718" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_195e0dbf-a430-426b-8099-efa6fd747c8c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther_195e0dbf-a430-426b-8099-efa6fd747c8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_285294d6-c348-4392-ae8c-a42595f57319" xlink:href="cdxs-20241231.xsd#cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation_285294d6-c348-4392-ae8c-a42595f57319" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d6e74591-c5df-40db-a707-c8c665a162ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_d6e74591-c5df-40db-a707-c8c665a162ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_c42e8492-0de6-4357-97b4-6b6e616d863a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_b3918abb-34af-4cd7-b60e-d7b1685ff43c" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_c42e8492-0de6-4357-97b4-6b6e616d863a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_9ed1869c-639f-4e9f-aa00-9dbf2141a357" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_8ccb9a3d-cf18-4394-be08-e2bfd25f1760" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9ed1869c-639f-4e9f-aa00-9dbf2141a357" xlink:to="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_8ccb9a3d-cf18-4394-be08-e2bfd25f1760" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_8ccb9a3d-cf18-4394-be08-e2bfd25f1760" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_e71ea95d-f019-4885-ab2d-fccd108bbc3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_e71ea95d-f019-4885-ab2d-fccd108bbc3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_9e047466-0e27-406f-90ff-d1ce99470a3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards_9e047466-0e27-406f-90ff-d1ce99470a3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsDeferredIncome_6c553284-a654-439f-acd8-1ebddfeec5d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsDeferredIncome"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsDeferredIncome_6c553284-a654-439f-acd8-1ebddfeec5d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_2a95cab8-7ff5-4054-89cb-6190a51585a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_2a95cab8-7ff5-4054-89cb-6190a51585a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_1e30e739-09c3-4617-b0c7-8aa46c11c577" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals_1e30e739-09c3-4617-b0c7-8aa46c11c577" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_75792d81-8363-47fe-bd0e-f61ce2e39f76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment_75792d81-8363-47fe-bd0e-f61ce2e39f76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_9a41c4bd-e237-4279-aacb-e7192c879b09" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_9a41c4bd-e237-4279-aacb-e7192c879b09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_742c0d3b-df8d-4f11-b867-7cb79b9a638a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsCapitalLossCarryforwards"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards_742c0d3b-df8d-4f11-b867-7cb79b9a638a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_320285ec-79df-45cb-ba02-7d425a9cbcdd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_320285ec-79df-45cb-ba02-7d425a9cbcdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses_ccda4fcc-c226-4d73-aa76-a0c1a4805d65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses_ccda4fcc-c226-4d73-aa76-a0c1a4805d65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxAssetsLeaseLiability_3309cdaf-9888-402c-b619-bfc3321cc7fd" xlink:href="cdxs-20241231.xsd#cdxs_DeferredTaxAssetsLeaseLiability"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_cdxs_DeferredTaxAssetsLeaseLiability_3309cdaf-9888-402c-b619-bfc3321cc7fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOther_dc0d5d5e-d3e9-4ed6-a19a-442ce5b8984a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOther"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsOther_dc0d5d5e-d3e9-4ed6-a19a-442ce5b8984a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGross_ac65fa42-c79e-4102-ad4b-154a2e352223" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGross"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_be9ea57f-9138-4284-be43-b718570c9f0d" xlink:to="loc_us-gaap_DeferredTaxAssetsGross_ac65fa42-c79e-4102-ad4b-154a2e352223" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_36e5f8d6-0df8-4f10-9226-880c8a445b5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_8ccb9a3d-cf18-4394-be08-e2bfd25f1760" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_36e5f8d6-0df8-4f10-9226-880c8a445b5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9194fffe-139b-427d-a437-215067315eca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_8ccb9a3d-cf18-4394-be08-e2bfd25f1760" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9194fffe-139b-427d-a437-215067315eca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_e2660e26-e790-428a-af11-684bd62f7741" xlink:href="cdxs-20241231.xsd#cdxs_DeferredTaxLiabilitiesRightOfUseAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9194fffe-139b-427d-a437-215067315eca" xlink:to="loc_cdxs_DeferredTaxLiabilitiesRightOfUseAssets_e2660e26-e790-428a-af11-684bd62f7741" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilities_dfdbae69-8ee4-4b49-8213-1baf244e2b20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9194fffe-139b-427d-a437-215067315eca" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilities_dfdbae69-8ee4-4b49-8213-1baf244e2b20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_7f7a6dd6-4921-497e-82c9-3ac60c5ebb0f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_8ccb9a3d-cf18-4394-be08-e2bfd25f1760" xlink:to="loc_us-gaap_DeferredTaxLiabilities_7f7a6dd6-4921-497e-82c9-3ac60c5ebb0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_9fdc7358-02eb-420e-b4dd-e62a436efc37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_443fec90-37ca-46da-9137-6f7ee87fbd82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9fdc7358-02eb-420e-b4dd-e62a436efc37" xlink:to="loc_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount_443fec90-37ca-46da-9137-6f7ee87fbd82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_b003ac09-5c18-42b0-ac64-8bcf7c953d9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9fdc7358-02eb-420e-b4dd-e62a436efc37" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_b003ac09-5c18-42b0-ac64-8bcf7c953d9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_b7c83a08-40e0-461d-ad33-693f2f23addb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9fdc7358-02eb-420e-b4dd-e62a436efc37" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_b7c83a08-40e0-461d-ad33-693f2f23addb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_54f76efb-5b7a-4fcb-b138-00f622191c0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9fdc7358-02eb-420e-b4dd-e62a436efc37" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_54f76efb-5b7a-4fcb-b138-00f622191c0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_757d1ba0-842c-4fa5-958a-a70b5b170b81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_757d1ba0-842c-4fa5-958a-a70b5b170b81" xlink:to="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_cd9f9769-8ed4-45c8-ac4b-1f9e349bc547" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_5ed729a0-7f88-4dd8-b015-314a9054f740" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:to="loc_us-gaap_DomesticCountryMember_5ed729a0-7f88-4dd8-b015-314a9054f740" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAndLocalJurisdictionMember_31303264-fda8-494e-88d7-9be62e245e65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAndLocalJurisdictionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_0876bdae-9908-4135-bb83-9a0a42028bf2" xlink:to="loc_us-gaap_StateAndLocalJurisdictionMember_31303264-fda8-494e-88d7-9be62e245e65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsTable_f7d308ea-c6d0-4c43-8b5b-cd93a0cfb6b3" xlink:to="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLossCarryforwards_deae4293-6fb1-4ef4-ae03-fd1d28fb58a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLossCarryforwards"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_us-gaap_OperatingLossCarryforwards_deae4293-6fb1-4ef4-ae03-fd1d28fb58a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_4b25a50d-7065-4afb-819c-36e793ac2056" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration_4b25a50d-7065-4afb-819c-36e793ac2056" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAmount_50871978-52c5-4545-acc2-8ac6e72db874" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems_33b39660-e517-4525-b557-1a016f54752b" xlink:to="loc_us-gaap_TaxCreditCarryforwardAmount_50871978-52c5-4545-acc2-8ac6e72db874" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_6488d8fa-7652-499a-8230-d121a2893e98" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_6488d8fa-7652-499a-8230-d121a2893e98" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_70e43c68-1880-4f86-a654-b7bf52873d2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_70e43c68-1880-4f86-a654-b7bf52873d2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_93cb97e4-a18b-4c8b-ac7f-1b5a33bdbd75" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_93cb97e4-a18b-4c8b-ac7f-1b5a33bdbd75" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_f691d90f-f892-44e1-ad1f-d4efb9209532" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_f691d90f-f892-44e1-ad1f-d4efb9209532" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_8a9a06b7-faeb-4648-9088-a8f4b1a7675c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_8a9a06b7-faeb-4648-9088-a8f4b1a7675c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_497cd5c0-70aa-4933-8252-b60cf8f18f8c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_03027116-2c38-496e-beca-67513f7f8294" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_497cd5c0-70aa-4933-8252-b60cf8f18f8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_fd8ff642-7b2b-4c72-8e27-710f23520331" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_fd8ff642-7b2b-4c72-8e27-710f23520331" xlink:to="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis_d25ade0a-cd66-4534-bab8-e45615ca0eb7" xlink:to="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A200220PenobscotMember_37a2f394-abc8-4395-953a-592e23b092d9" xlink:href="cdxs-20241231.xsd#cdxs_A200220PenobscotMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_A200220PenobscotMember_37a2f394-abc8-4395-953a-592e23b092d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A400PenoscotMember_256f8931-ff8c-43a8-9431-17ebedf6aa91" xlink:href="cdxs-20241231.xsd#cdxs_A400PenoscotMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_A400PenoscotMember_256f8931-ff8c-43a8-9431-17ebedf6aa91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_A501ChesapeakeMember_e3cd318a-27c8-4405-ae21-03611a4dad22" xlink:href="cdxs-20241231.xsd#cdxs_A501ChesapeakeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_A501ChesapeakeMember_e3cd318a-27c8-4405-ae21-03611a4dad22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_SanCarlosMember_ae73085c-de31-43d7-85d4-eb0e0e4e19e6" xlink:href="cdxs-20241231.xsd#cdxs_SanCarlosMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain_af56e438-0588-4072-b8bd-27eb70fa0a2c" xlink:to="loc_cdxs_SanCarlosMember_ae73085c-de31-43d7-85d4-eb0e0e4e19e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseContractualTermDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeaseContractualTermAxis_29a6bd4b-6bdb-45f7-9459-ffef4570185b" xlink:to="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_0774144c-689f-469a-9783-0aff937ebc16" xlink:href="cdxs-20241231.xsd#cdxs_PenobscotSpaceFiveYearRenewalOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:to="loc_cdxs_PenobscotSpaceFiveYearRenewalOptionMember_0774144c-689f-469a-9783-0aff937ebc16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_0474da98-293c-42af-8b9c-6aae885cfd1b" xlink:href="cdxs-20241231.xsd#cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeaseContractualTermDomain_bfcba9f9-4e72-41d6-b3b8-0740580e8e20" xlink:to="loc_cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember_0474da98-293c-42af-8b9c-6aae885cfd1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_66bf4f2d-937c-4339-abab-c42e5b5100be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_411f5f66-841a-4c3d-a49d-291f07be1dfb" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_66bf4f2d-937c-4339-abab-c42e5b5100be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_a0f19736-deb5-4c7a-b997-2e5a681ce9e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_66bf4f2d-937c-4339-abab-c42e5b5100be" xlink:to="loc_us-gaap_LandMember_a0f19736-deb5-4c7a-b997-2e5a681ce9e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3bd344d7-bf01-4e06-ac6d-456e1af9c28b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis_69a8fb2e-e62c-4c28-b0e9-ee5f98001318" xlink:to="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3bd344d7-bf01-4e06-ac6d-456e1af9c28b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DemandDepositsMember_8f6f73bf-9504-43e6-9372-2b50cccddfd3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DemandDepositsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember_3bd344d7-bf01-4e06-ac6d-456e1af9c28b" xlink:to="loc_us-gaap_DemandDepositsMember_8f6f73bf-9504-43e6-9372-2b50cccddfd3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityAxis"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CreditFacilityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityAxis_1ef20095-04e6-47a3-9b2a-ed4d98ef3a70" xlink:to="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_fdb0cd7c-9dcd-440a-b9fb-cc25b79e248c" xlink:href="cdxs-20241231.xsd#cdxs_TermLoanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:to="loc_cdxs_TermLoanMember_fdb0cd7c-9dcd-440a-b9fb-cc25b79e248c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevolvingCreditFacilityMember_7b03443a-9afe-4fe5-a625-f0b49cf8bee8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevolvingCreditFacilityMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CreditFacilityDomain_b03894cf-5be4-43bc-a3ed-667825c4d583" xlink:to="loc_us-gaap_RevolvingCreditFacilityMember_7b03443a-9afe-4fe5-a625-f0b49cf8bee8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyNatureDomain_1ca3582d-583e-460d-9b01-4b2e0bcbe68b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyNatureDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingenciesByNatureOfContingencyAxis_88108b9b-776c-48dd-adc2-4dc9526ca4af" xlink:to="loc_us-gaap_LossContingencyNatureDomain_1ca3582d-583e-460d-9b01-4b2e0bcbe68b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndemnificationGuaranteeMember_7aa791b9-2bfd-40df-aec0-43cea8afc351" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IndemnificationGuaranteeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LossContingencyNatureDomain_1ca3582d-583e-460d-9b01-4b2e0bcbe68b" xlink:to="loc_us-gaap_IndemnificationGuaranteeMember_7aa791b9-2bfd-40df-aec0-43cea8afc351" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermPurchaseCommitmentLineItems"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentTable_e8695df8-422c-4088-97b5-385583fb87f5" xlink:to="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty_cd6f8432-d31b-42fe-9dd2-9f3c17dcfe1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_AreaOfRealEstateProperty_cd6f8432-d31b-42fe-9dd2-9f3c17dcfe1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_48d2800d-f719-4ebb-9bf0-69537b68052c" xlink:href="cdxs-20241231.xsd#cdxs_LesseeOperatingLeaseNumberOfRenewalOptions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions_48d2800d-f719-4ebb-9bf0-69537b68052c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_c60ee166-d60b-4f8f-bf53-dd8c6708bf52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LesseeOperatingLeaseRenewalTerm_c60ee166-d60b-4f8f-bf53-dd8c6708bf52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_AllowanceForTenantImprovements_ec08ea8c-f3c0-4d0a-b001-4e6033547e3d" xlink:href="cdxs-20241231.xsd#cdxs_AllowanceForTenantImprovements"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_AllowanceForTenantImprovements_ec08ea8c-f3c0-4d0a-b001-4e6033547e3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_c3d10c31-4d6b-4004-876b-27a4c9caf61d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_OperatingLeaseLiability_c3d10c31-4d6b-4004-876b-27a4c9caf61d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_f7adcd0a-3c6b-4433-a10f-eb6d1a6511c3" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_f7adcd0a-3c6b-4433-a10f-eb6d1a6511c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_d9416467-0791-4401-8907-45c31ded03ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_AssetImpairmentCharges_d9416467-0791-4401-8907-45c31ded03ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfLeasehold_99d50293-90ff-4d8a-a19d-2f6dc2a17867" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ImpairmentOfLeasehold"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_ImpairmentOfLeasehold_99d50293-90ff-4d8a-a19d-2f6dc2a17867" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_3636c4d8-3aa4-41b7-a2a9-9ccde6f6cbfd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_3636c4d8-3aa4-41b7-a2a9-9ccde6f6cbfd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_a4b573c3-4062-447d-936a-22f7cb8eadaa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedCashAndInvestmentsNoncurrent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_RestrictedCashAndInvestmentsNoncurrent_a4b573c3-4062-447d-936a-22f7cb8eadaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetRetirementObligation_a99688a5-d116-4fec-8a7d-6af2e49889dd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetRetirementObligation"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_AssetRetirementObligation_a99688a5-d116-4fec-8a7d-6af2e49889dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_2e7c2159-1b00-4591-9bc9-19887521870d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_2e7c2159-1b00-4591-9bc9-19887521870d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_ff852f4f-90f6-4426-957f-7dee78e34ba7" xlink:href="cdxs-20241231.xsd#cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage_ff852f4f-90f6-4426-957f-7dee78e34ba7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_447f52d1-d7eb-4327-9f20-27bfcee4a677" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongTermPurchaseCommitmentLineItems_8d9b20b5-f39f-40e2-8931-2a7c16e015b9" xlink:to="loc_us-gaap_LossContingencyAccrualCarryingValueCurrent_447f52d1-d7eb-4327-9f20-27bfcee4a677" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_e040f3a0-f524-448d-be76-569477bcff05" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_72185bef-3033-4a82-bfde-395664f22d74" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseRightOfUseAssetRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_e040f3a0-f524-448d-be76-569477bcff05" xlink:to="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_72185bef-3033-4a82-bfde-395664f22d74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_5cf928c3-80bf-4e1c-af29-8c1f7adb4ee6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_72185bef-3033-4a82-bfde-395664f22d74" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_5cf928c3-80bf-4e1c-af29-8c1f7adb4ee6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_6931326b-0bb1-453c-9897-0d8ca571cb7b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_72185bef-3033-4a82-bfde-395664f22d74" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_6931326b-0bb1-453c-9897-0d8ca571cb7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification_c8ddf63d-2ad1-48d1-8caf-5fceec225e27" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_72185bef-3033-4a82-bfde-395664f22d74" xlink:to="loc_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification_c8ddf63d-2ad1-48d1-8caf-5fceec225e27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_70040f77-2630-49ed-9f25-18b10b5db384" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseRightOfUseAssetRollForward_72185bef-3033-4a82-bfde-395664f22d74" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_70040f77-2630-49ed-9f25-18b10b5db384" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseLiabilityRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_e040f3a0-f524-448d-be76-569477bcff05" xlink:to="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_4f1e3d87-4beb-4a7c-9a45-071fdf65a9df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:to="loc_us-gaap_OperatingLeaseLiability_4f1e3d87-4beb-4a7c-9a45-071fdf65a9df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_49fc21dd-d19f-4255-99ce-c90ca6e7ad97" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:to="loc_us-gaap_OperatingLeasePayments_49fc21dd-d19f-4255-99ce-c90ca6e7ad97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseInterestAccretion_70c082d8-3d40-4ec0-9b2b-c846facfe04e" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseInterestAccretion"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:to="loc_cdxs_OperatingLeaseInterestAccretion_70c082d8-3d40-4ec0-9b2b-c846facfe04e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_c0ff9cb0-11e0-4020-8258-87706a7f53af" xlink:href="cdxs-20241231.xsd#cdxs_OperatingLeaseWriteOffDueToLeaseModification"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:to="loc_cdxs_OperatingLeaseWriteOffDueToLeaseModification_c0ff9cb0-11e0-4020-8258-87706a7f53af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_d300a907-7d9f-4db3-b4c9-c12920a0509d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OperatingLeaseLiabilityRollForward_7aa96d01-ab09-4c5f-b252-818b7c6ed3ad" xlink:to="loc_us-gaap_OperatingLeaseLiability_d300a907-7d9f-4db3-b4c9-c12920a0509d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesLeaseCostsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_d08f48c0-3ee4-456b-8cee-394e02e7fbb5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_FinanceLeaseCost_3e54680b-ef11-44bc-9802-76970f507745" xlink:href="cdxs-20241231.xsd#cdxs_FinanceLeaseCost"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_d08f48c0-3ee4-456b-8cee-394e02e7fbb5" xlink:to="loc_cdxs_FinanceLeaseCost_3e54680b-ef11-44bc-9802-76970f507745" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseCost_6dc51029-1b56-45e2-84d8-d28336f9d78d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseCost"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_d08f48c0-3ee4-456b-8cee-394e02e7fbb5" xlink:to="loc_us-gaap_OperatingLeaseCost_6dc51029-1b56-45e2-84d8-d28336f9d78d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermLeaseCost_b169e337-c72a-4af9-a216-d60dc66f6cd7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermLeaseCost"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_d08f48c0-3ee4-456b-8cee-394e02e7fbb5" xlink:to="loc_us-gaap_ShortTermLeaseCost_b169e337-c72a-4af9-a216-d60dc66f6cd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseCost_7800d2fc-6927-4807-9a49-1486cad118ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseCost"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_d08f48c0-3ee4-456b-8cee-394e02e7fbb5" xlink:to="loc_us-gaap_LeaseCost_7800d2fc-6927-4807-9a49-1486cad118ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeaseCost_bfe96423-5679-4da2-9e9c-0763a8a07f6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_VariableLeaseCost"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_d08f48c0-3ee4-456b-8cee-394e02e7fbb5" xlink:to="loc_us-gaap_VariableLeaseCost_bfe96423-5679-4da2-9e9c-0763a8a07f6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesOtherLeaseInformationDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_fca800a6-18d8-4119-a8e8-ae388a84a96f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CashPaidAbstract_064c974f-1f48-40a0-bf31-2a2b9115fac6" xlink:href="cdxs-20241231.xsd#cdxs_CashPaidAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_fca800a6-18d8-4119-a8e8-ae388a84a96f" xlink:to="loc_cdxs_CashPaidAbstract_064c974f-1f48-40a0-bf31-2a2b9115fac6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_2fb41428-b484-4f0b-a61b-633c5bb3c239" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_CashPaidAbstract_064c974f-1f48-40a0-bf31-2a2b9115fac6" xlink:to="loc_us-gaap_OperatingLeasePayments_2fb41428-b484-4f0b-a61b-633c5bb3c239" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_OtherInformationAbstract_2030accb-9d7d-43f0-848f-dfb4d6f94941" xlink:href="cdxs-20241231.xsd#cdxs_OtherInformationAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_fca800a6-18d8-4119-a8e8-ae388a84a96f" xlink:to="loc_cdxs_OtherInformationAbstract_2030accb-9d7d-43f0-848f-dfb4d6f94941" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_7007c3b3-feac-4487-864c-6297166df788" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OtherInformationAbstract_2030accb-9d7d-43f0-848f-dfb4d6f94941" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_7007c3b3-feac-4487-864c-6297166df788" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_028ba853-c7af-4476-8328-102181215c3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_OtherInformationAbstract_2030accb-9d7d-43f0-848f-dfb4d6f94941" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_028ba853-c7af-4476-8328-102181215c3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0ce5395f-3eb0-408e-9cdb-7f85ea14527e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0ce5395f-3eb0-408e-9cdb-7f85ea14527e" xlink:to="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_92ce382d-2b3c-463e-9ca2-df32bc17a0f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_92ce382d-2b3c-463e-9ca2-df32bc17a0f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_7062f437-433d-4fc0-9f77-7fa5f45da9ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_7062f437-433d-4fc0-9f77-7fa5f45da9ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_74e33780-edcd-4691-8786-9da7880b5d1a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_74e33780-edcd-4691-8786-9da7880b5d1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_1e42b05a-ee37-4052-a40b-2d2ecaae13f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_1e42b05a-ee37-4052-a40b-2d2ecaae13f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_9bf1998d-14fa-43b1-afc1-3170295dde41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_9bf1998d-14fa-43b1-afc1-3170295dde41" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_64bd8390-5d70-4f6e-8c1a-c9265d136ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_64bd8390-5d70-4f6e-8c1a-c9265d136ecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_9807d61b-22a4-4921-b67d-908e74f6f32e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_9807d61b-22a4-4921-b67d-908e74f6f32e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_fa1fda0f-facf-4d67-9dce-366e28ab561c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_fa1fda0f-facf-4d67-9dce-366e28ab561c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_809ed510-85ee-4881-bd31-c82d6f53d039" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_OperatingLeaseLiability_809ed510-85ee-4881-bd31-c82d6f53d039" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_01a7179f-479a-4aa7-b076-5fe8eff4f293" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_01a7179f-479a-4aa7-b076-5fe8eff4f293" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_a760a2a6-e234-487e-860e-a1ce5ca83bf9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_83c57a6c-daa8-416e-beb2-f710a82d7c49" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_a760a2a6-e234-487e-860e-a1ce5ca83bf9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DebtNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureAbstract_0b7617be-8170-4a01-b13e-318e86663c3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_0b7617be-8170-4a01-b13e-318e86663c3b" xlink:to="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentAxis_2c35fdf1-a0a4-44ed-b34c-d6b010782a48" xlink:to="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_TermLoanMember_0ce071a9-79d2-491d-9ce6-c1af4b364eb9" xlink:href="cdxs-20241231.xsd#cdxs_TermLoanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:to="loc_cdxs_TermLoanMember_0ce071a9-79d2-491d-9ce6-c1af4b364eb9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentNameDomain_c7b6d51b-2bed-4008-a2e7-bd5f83f9d114" xlink:to="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanFirstTrancheMember_077f5476-535e-47d8-b2e7-eb8785f6463b" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanFirstTrancheMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:to="loc_cdxs_InnovatusLoanFirstTrancheMember_077f5476-535e-47d8-b2e7-eb8785f6463b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanSecondTrancheMember_ee1b101a-73ad-4d7c-8b51-c753bd81f791" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanSecondTrancheMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cdxs_InnovatusLoanMember_523254c4-122e-4e27-b22f-0d8a23e1c35e" xlink:to="loc_cdxs_InnovatusLoanSecondTrancheMember_ee1b101a-73ad-4d7c-8b51-c753bd81f791" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongtermDebtTypeDomain_f6d69811-58ca-4c13-a7e0-bd4ee43fbf3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongtermDebtTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongtermDebtTypeAxis_119f0155-548b-459c-a29e-7c99ddfb0fb2" xlink:to="loc_us-gaap_LongtermDebtTypeDomain_f6d69811-58ca-4c13-a7e0-bd4ee43fbf3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SecuredDebtMember_2bfb78f5-2ed4-4d87-a718-d9a04f66c648" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SecuredDebtMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LongtermDebtTypeDomain_f6d69811-58ca-4c13-a7e0-bd4ee43fbf3a" xlink:to="loc_us-gaap_SecuredDebtMember_2bfb78f5-2ed4-4d87-a718-d9a04f66c648" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_6667a597-99d2-4c80-88f6-e106bbd529b1" xlink:to="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_7cf413cb-10b2-4834-b3aa-e7f5026657e4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:to="loc_srt_MaximumMember_7cf413cb-10b2-4834-b3aa-e7f5026657e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a63b19ad-87b6-4adc-9b7c-82e9f9c1db20" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_d37b2e0d-08d4-413f-85b6-fe6c67099727" xlink:to="loc_srt_MinimumMember_a63b19ad-87b6-4adc-9b7c-82e9f9c1db20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightDomain_8b4b3da8-4029-4d7f-bdce-d5862a0ec1e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfWarrantOrRightAxis_2803d4ac-f8c1-4238-84bc-2284a87fd5ce" xlink:to="loc_us-gaap_ClassOfWarrantOrRightDomain_8b4b3da8-4029-4d7f-bdce-d5862a0ec1e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_InnovatusLoanWarrantsMember_6e274aed-0bb1-4bad-8d91-ba88d7620d56" xlink:href="cdxs-20241231.xsd#cdxs_InnovatusLoanWarrantsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfWarrantOrRightDomain_8b4b3da8-4029-4d7f-bdce-d5862a0ec1e0" xlink:to="loc_cdxs_InnovatusLoanWarrantsMember_6e274aed-0bb1-4bad-8d91-ba88d7620d56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentTable_dbfb93d8-1212-4d6b-b7d9-d468451de181" xlink:to="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentTerm_041d8d55-dca7-4a5c-aae1-45549eb28a0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentTerm"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentTerm_041d8d55-dca7-4a5c-aae1-45549eb28a0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount_dc74e1aa-47ef-436d-b67f-029239c4e05f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentFaceAmount_dc74e1aa-47ef-436d-b67f-029239c4e05f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentNumberOfTranches_58242c58-1601-4716-8c9d-212e51681d67" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentNumberOfTranches"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentNumberOfTranches_58242c58-1601-4716-8c9d-212e51681d67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentFacilityFeePercent_6d53a8be-1153-44a8-98f5-8ea66f087002" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentFacilityFeePercent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentFacilityFeePercent_6d53a8be-1153-44a8-98f5-8ea66f087002" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_1df9987f-65ad-44df-b09b-7b35c7aa658d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentInterestRateStatedPercentage_1df9987f-65ad-44df-b09b-7b35c7aa658d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration_db073a73-d650-4a20-bc07-09043e0adcf6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration_db073a73-d650-4a20-bc07-09043e0adcf6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_7ba6e4fc-7e80-4bd4-9c2f-4c1cffd125c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_7ba6e4fc-7e80-4bd4-9c2f-4c1cffd125c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPaidInKind_ecda482c-5e06-4bc7-a4c0-0dcaebafcc54" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentInterestPaidInKind"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentInterestPaidInKind_ecda482c-5e06-4bc7-a4c0-0dcaebafcc54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentInterestPayableTerm_8842273a-a29c-437f-bb3a-9b3652c20249" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentInterestPayableTerm"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentInterestPayableTerm_8842273a-a29c-437f-bb3a-9b3652c20249" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_EarlyRepaymentFeePercentage_56ee43af-a16f-42c5-9208-86d0760d0a8f" xlink:href="cdxs-20241231.xsd#cdxs_EarlyRepaymentFeePercentage"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_EarlyRepaymentFeePercentage_56ee43af-a16f-42c5-9208-86d0760d0a8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentExitFeePercent_5ed3162f-7ede-4bad-9e2b-005921f4c6a0" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentExitFeePercent"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_DebtInstrumentExitFeePercent_5ed3162f-7ede-4bad-9e2b-005921f4c6a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount_f7901eaa-2f8e-4ec1-b135-8545779f6551" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentUnamortizedDiscount_f7901eaa-2f8e-4ec1-b135-8545779f6551" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense_0e05c720-5669-43dd-abaf-18ebd784f3b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_UnamortizedDebtIssuanceExpense_0e05c720-5669-43dd-abaf-18ebd784f3b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestExpenseDebt_9eebd8de-b62a-479a-8e02-c8d9a6731f52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestExpenseDebt"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_InterestExpenseDebt_9eebd8de-b62a-479a-8e02-c8d9a6731f52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentInterestRateEffectivePercentage_3db1a1b3-5481-42dc-bb81-e154e9d32b14" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_DebtInstrumentInterestRateEffectivePercentage_3db1a1b3-5481-42dc-bb81-e154e9d32b14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_32305b33-51ba-4698-bd6d-91693a60732f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_32305b33-51ba-4698-bd6d-91693a60732f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_6085fd10-27ca-42bb-9a6f-3b442e8d09f7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_6085fd10-27ca-42bb-9a6f-3b442e8d09f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_ClassOfWarrantOrRightFairValue_a60541b9-6acf-4f66-9d0c-e5d62d3341c2" xlink:href="cdxs-20241231.xsd#cdxs_ClassOfWarrantOrRightFairValue"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtInstrumentLineItems_9d589644-3172-4e35-bf0e-1ea3f9e28cba" xlink:to="loc_cdxs_ClassOfWarrantOrRightFairValue_a60541b9-6acf-4f66-9d0c-e5d62d3341c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtScheduleofLongTermDebtInstrumentsDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentFaceAmount_d81ee8f6-b0a9-4109-a99e-e1c388c4c0c9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentFaceAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:to="loc_us-gaap_DebtInstrumentFaceAmount_d81ee8f6-b0a9-4109-a99e-e1c388c4c0c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentPaymentInKindInterest_95b7cb60-26b8-42e9-b6dc-32de54c074c3" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentPaymentInKindInterest"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:to="loc_cdxs_DebtInstrumentPaymentInKindInterest_95b7cb60-26b8-42e9-b6dc-32de54c074c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentAmortizedExitFee_f8290d1a-4cb4-4857-84a7-07602fa1f46d" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentAmortizedExitFee"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:to="loc_cdxs_DebtInstrumentAmortizedExitFee_f8290d1a-4cb4-4857-84a7-07602fa1f46d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount_ab7b2e8a-4fc5-454c-8cc5-fbbd1e953e0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:to="loc_us-gaap_DebtInstrumentUnamortizedDiscount_ab7b2e8a-4fc5-454c-8cc5-fbbd1e953e0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense_6030b34d-d7d8-451b-a370-33d8e8d9e229" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:to="loc_us-gaap_UnamortizedDebtIssuanceExpense_6030b34d-d7d8-451b-a370-33d8e8d9e229" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebt_0aa96a50-d270-4959-a741-fb0d0bd8578e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_5cdeadeb-5d10-498e-a433-2546c50b3261" xlink:to="loc_us-gaap_LongTermDebt_0aa96a50-d270-4959-a741-fb0d0bd8578e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#DebtScheduleofMaturitiesofLongTermDebtDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_ce0403cb-3203-4ba4-a533-8d0c3b5517c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths_ce0403cb-3203-4ba4-a533-8d0c3b5517c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_71cc118c-813a-4e5c-ac62-79a3b72fbe82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo_71cc118c-813a-4e5c-ac62-79a3b72fbe82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_fe9ed398-8fab-4793-9c92-7482a9eb2560" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree_fe9ed398-8fab-4793-9c92-7482a9eb2560" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_c3bf8027-126e-47e9-af11-f4c899b9d3df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour_c3bf8027-126e-47e9-af11-f4c899b9d3df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive_6bc4b2b4-665b-40c3-8299-c81cf653b503" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive_6bc4b2b4-665b-40c3-8299-c81cf653b503" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentCarryingAmount_037faa68-f659-4643-ae6f-ec8b732fb592" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentCarryingAmount"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_DebtInstrumentCarryingAmount_037faa68-f659-4643-ae6f-ec8b732fb592" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentAmortizedExitFee_1f127c8c-c52f-46b9-96c3-9dce7e1c401c" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentAmortizedExitFee"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_cdxs_DebtInstrumentAmortizedExitFee_1f127c8c-c52f-46b9-96c3-9dce7e1c401c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_57f6c1b6-41ae-4861-abf7-bf686100c7b7" xlink:href="cdxs-20241231.xsd#cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest_57f6c1b6-41ae-4861-abf7-bf686100c7b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtInstrumentUnamortizedDiscount_5176a3c4-8297-4f9a-9ceb-9f1b6a46f52c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtInstrumentUnamortizedDiscount"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_DebtInstrumentUnamortizedDiscount_5176a3c4-8297-4f9a-9ceb-9f1b6a46f52c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnamortizedDebtIssuanceExpense_4522ad64-23b1-4df2-bf45-f327f3576a05" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnamortizedDebtIssuanceExpense"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_UnamortizedDebtIssuanceExpense_4522ad64-23b1-4df2-bf45-f327f3576a05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermDebt_42f6a53d-d694-4eb2-b1c7-ec7cd60a3811" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermDebt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DebtDisclosureAbstract_6a023afc-f27d-4e78-9f29-e6bebcb32f69" xlink:to="loc_us-gaap_LongTermDebt_42f6a53d-d694-4eb2-b1c7-ec7cd60a3811" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformationNarrativeDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_3bfc5325-7a93-427b-bebc-7c2eed237102" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_NumberOfBusinessSegments_196b0fd1-3dd7-4f66-9805-c0da87e804f3" xlink:href="cdxs-20241231.xsd#cdxs_NumberOfBusinessSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bfc5325-7a93-427b-bebc-7c2eed237102" xlink:to="loc_cdxs_NumberOfBusinessSegments_196b0fd1-3dd7-4f66-9805-c0da87e804f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_2e617cb5-0c26-4e1f-aea0-331bcf2b02ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bfc5325-7a93-427b-bebc-7c2eed237102" xlink:to="loc_us-gaap_NumberOfReportableSegments_2e617cb5-0c26-4e1f-aea0-331bcf2b02ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillImpairmentLoss_975d3c0b-47a5-42cc-9f8f-5fa0eefe3efc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillImpairmentLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_3bfc5325-7a93-427b-bebc-7c2eed237102" xlink:to="loc_us-gaap_GoodwillImpairmentLoss_975d3c0b-47a5-42cc-9f8f-5fa0eefe3efc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_618bf481-0fb2-4096-bc20-ae5b8ccaeeba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_618bf481-0fb2-4096-bc20-ae5b8ccaeeba" xlink:to="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_7448109b-7abf-4115-80de-3d1af58c8cdd" xlink:to="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerAMember_d61b2ee2-387d-4de4-b9dc-2b0322b29815" xlink:href="cdxs-20241231.xsd#cdxs_CustomerAMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerAMember_d61b2ee2-387d-4de4-b9dc-2b0322b29815" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerBMember_014a298c-a4c7-4b9d-abe5-95135e24d55f" xlink:href="cdxs-20241231.xsd#cdxs_CustomerBMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerBMember_014a298c-a4c7-4b9d-abe5-95135e24d55f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerCMember_5e80fb21-979a-4ce1-832e-c6eb3291991a" xlink:href="cdxs-20241231.xsd#cdxs_CustomerCMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerCMember_5e80fb21-979a-4ce1-832e-c6eb3291991a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerDMember_d3be6f53-7b70-49aa-8aa4-759e23d3330d" xlink:href="cdxs-20241231.xsd#cdxs_CustomerDMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerDMember_d3be6f53-7b70-49aa-8aa4-759e23d3330d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerEMember_5467f1ca-cc7a-47a9-be85-a57950c476c7" xlink:href="cdxs-20241231.xsd#cdxs_CustomerEMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerEMember_5467f1ca-cc7a-47a9-be85-a57950c476c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerFMember_6d4e16c8-5656-4798-b518-d2e21c7d45a2" xlink:href="cdxs-20241231.xsd#cdxs_CustomerFMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerFMember_6d4e16c8-5656-4798-b518-d2e21c7d45a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerGMember_d5ca798a-6e68-46d4-94b1-18cefe0b8fd3" xlink:href="cdxs-20241231.xsd#cdxs_CustomerGMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerGMember_d5ca798a-6e68-46d4-94b1-18cefe0b8fd3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerHMember_39250abf-bec8-4c07-b975-1e7e5a3b3e4c" xlink:href="cdxs-20241231.xsd#cdxs_CustomerHMember"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerHMember_39250abf-bec8-4c07-b975-1e7e5a3b3e4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cdxs_CustomerIMember_5e348937-cd76-4315-9326-664f5c67c7d6" xlink:href="cdxs-20241231.xsd#cdxs_CustomerIMember"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_b738e97f-0ea9-44f0-a015-ea757619ede5" xlink:to="loc_cdxs_CustomerIMember_5e348937-cd76-4315-9326-664f5c67c7d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_92ed2439-7b59-4bab-8141-a33f823f1e43" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueProductLineMember_6e2a5578-f5bc-4556-b86f-910ff0f1eb76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueProductLineMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:to="loc_us-gaap_SalesRevenueProductLineMember_6e2a5578-f5bc-4556-b86f-910ff0f1eb76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_1110bf64-4cf2-4cc9-9ec7-2dbc5556df96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_297a0912-c7a1-4a07-84d8-bc5986c06ec8" xlink:to="loc_us-gaap_AccountsReceivableMember_1110bf64-4cf2-4cc9-9ec7-2dbc5556df96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_5f60f716-3d1f-4994-a01c-1df2913b34f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_49eddaf3-b090-4b9b-9c22-7b9f21043400" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_5f60f716-3d1f-4994-a01c-1df2913b34f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_0b1dc760-f224-479f-9b6b-3a4dee816121" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_5f60f716-3d1f-4994-a01c-1df2913b34f8" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_0b1dc760-f224-479f-9b6b-3a4dee816121" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_e47b459c-4117-4e18-adab-0e6efc24eb68" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_3c6aaf29-e639-430a-9dc0-9e08a5247fc9" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_e47b459c-4117-4e18-adab-0e6efc24eb68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_e4e20a3a-2f81-4f91-b73e-e22e23c80a21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_e47b459c-4117-4e18-adab-0e6efc24eb68" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_e4e20a3a-2f81-4f91-b73e-e22e23c80a21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#SegmentGeographicalandOtherRevenueInformationRevenuesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_48357f6e-af28-4d65-820f-cf0e478fcf53" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_48357f6e-af28-4d65-820f-cf0e478fcf53" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:to="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_73370844-0b38-400a-99c9-6fe6385eb173" xlink:to="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_e4de8b3e-dd52-48d4-b1df-307a724c79b5" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_srt_AmericasMember_e4de8b3e-dd52-48d4-b1df-307a724c79b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EMEAMember_32e771f6-a187-4808-8a83-c1c891bb4783" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EMEAMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_us-gaap_EMEAMember_32e771f6-a187-4808-8a83-c1c891bb4783" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AsiaPacificMember_602865d8-81df-4168-91f8-46f4147a5c30" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AsiaPacificMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_srt_AsiaPacificMember_602865d8-81df-4168-91f8-46f4147a5c30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_f52e46d1-e347-4578-b93b-2b47ecafcf86" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_US_f52e46d1-e347-4578-b93b-2b47ecafcf86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IE_cd82d4a7-0246-40d3-b1f3-7bf59b70df6e" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_IE"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_IE_cd82d4a7-0246-40d3-b1f3-7bf59b70df6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CH_49857ca2-111f-4291-9d7d-3e41a7310069" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CH"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_CH_49857ca2-111f-4291-9d7d-3e41a7310069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_CN_904ab014-335e-48f2-a780-6ad560c21aad" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_CN"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_CN_904ab014-335e-48f2-a780-6ad560c21aad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_IN_a6b2d9c6-0a79-4ab7-bfb1-ed58c83f5711" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_IN"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_IN_a6b2d9c6-0a79-4ab7-bfb1-ed58c83f5711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG_47389e47-a534-4252-94fc-c6b523896034" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_SG"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_a3f8d782-604c-4fb9-bb1a-eb21753066eb" xlink:to="loc_country_SG_47389e47-a534-4252-94fc-c6b523896034" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_23fa9261-763b-4d39-b1f5-9e2142960eb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_5867dd6d-b3a9-4dec-a5b1-e03f75897a73" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_23fa9261-763b-4d39-b1f5-9e2142960eb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_23fa9261-763b-4d39-b1f5-9e2142960eb3" xlink:to="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1e61e9a6-306d-4a2b-8181-d555a738c258" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_1e61e9a6-306d-4a2b-8181-d555a738c258" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_0fe05b94-7ec1-4b8d-9154-1afce7a8280f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncurrentAssets"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesAbstract_1dd4423d-bffd-40e4-a909-444226ed5f76" xlink:to="loc_us-gaap_NoncurrentAssets_0fe05b94-7ec1-4b8d-9154-1afce7a8280f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="simple" xlink:href="cdxs-20241231.xsd#RestructuringChargesDetails"/>
  <link:presentationLink xlink:role="http://www.codexis.com/role/RestructuringChargesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_0cd0954e-c31a-4de9-a8d1-c51c10a63720" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_0cd0954e-c31a-4de9-a8d1-c51c10a63720" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_00051cc6-3aa2-4620-938e-fa4359f2cb08" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_e4738474-50a5-4912-b968-7c23cedeec8c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_e4738474-50a5-4912-b968-7c23cedeec8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeSeveranceMember_5ba19272-61c1-4f54-8d05-493c98e1c9a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeSeveranceMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_53180e00-640b-44ac-91f4-d46fbcd83663" xlink:to="loc_us-gaap_EmployeeSeveranceMember_5ba19272-61c1-4f54-8d05-493c98e1c9a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_75e1a609-1810-495a-a8f0-e556c16fdcf4" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_d61205a5-6e99-4ec7-9f5a-57b573cbbea9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_d61205a5-6e99-4ec7-9f5a-57b573cbbea9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_97ed3147-8cc7-4864-b377-d9bfc1d47eb4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4cd90833-acc6-4b00-a599-8b6b2117bbc6" xlink:to="loc_us-gaap_RestructuringCharges_97ed3147-8cc7-4864-b377-d9bfc1d47eb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#AwardTimingDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_us-gaap_AwardTypeAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockOptionMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardExrcPrice"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardExrcPrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardGrantDateFairValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ErrCompDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompRecoveryTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompRecoveryTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDateAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_RestatementDateAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonNeosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_ecd_NonNeosMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDeterminationDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDeterminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompAmt"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#PvpDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_ExecutiveCategoryAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="loc_ecd_AllExecutiveCategoriesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_PeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_NonPeoNeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_AdjToCompAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllAdjToCompMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="loc_ecd_AllAdjToCompMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtPnsnAdjsSvcCstMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsSvcCstMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="loc_ecd_PnsnAdjsSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsPrrSvcCstMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_EqtyAwrdsAdjsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_MeasureAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoTotalCompAmt"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TabularListTableTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TabularListTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_us-gaap_NetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_OtherPerfMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAmt"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoName"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureName"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_MeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnBnftsAdjFnTextBlock"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjFnTextBlock"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingArrangements"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrByIndTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TradingArrByIndTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_TradingArrAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrAxis" xlink:to="loc_ecd_AllTradingArrangementsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndTitle"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndTitle" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrAdoptionDate"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrAdoptionDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrTerminationDate"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrTerminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrExpirationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrExpirationDate"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrExpirationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrDuration"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrDuration" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingPoliciesProc"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<FILENAME>cdxs-20241231_g1.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 cdxs-20241231_g1.jpg
M_]C_X  02D9)1@ ! @$ 8 !@  #_[@ .061O8F4 90     !_]L 0P " 0$!
M 0$" 0$! @(" @($ P(" @(%! 0#! 8%!@8&!08&!@<)" 8'"0<&!@@+" D*
M"@H*"@8("PP+"@P)"@H*_]L 0P$" @(" @(% P,%"@<&!PH*"@H*"@H*"@H*
M"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*_\  $0@#
MO@44 P$B  (1 0,1 ?_$ !\   $% 0$! 0$!           ! @,$!08'" D*
M"__$ +40  (! P,"! ,%!00$   !?0$" P $$042(3%!!A-180<B<10R@9&A
M""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#4V-S@Y.D-$149'2$E*4U15
M5E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JBHZ2EIJ>H
MJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ\?+S]/7V
M]_CY^O_$ !\!  ,! 0$! 0$! 0$        ! @,$!08'" D*"__$ +41  (!
M @0$ P0'!00$  $"=P ! @,1! 4A,08205$'87$3(C*!"!1"D:&QP0DC,U+P
M%6)RT0H6)#3A)?$7&!D:)B<H*2HU-C<X.3I#1$5&1TA)2E-455976%E:8V1E
M9F=H:6IS='5V=WAY>H*#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6V
MM[BYNL+#Q,7&Q\C)RM+3U-76U]C9VN+CY.7FY^CIZO+S]/7V]_CY^O_:  P#
M 0 "$0,1 #\ _?RBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MW3PWJ$XWI.C[UR-RYS7D'_!HSI&A:;_P1E\-7ND1(MQJ'CC7[C5"@Y:<77E
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
MX[_[$S5/_226OY<?^#1'_E,KH/\ V(.O?^B%H _9OP-_P2/O/V(?^"N7P?\
MVB?V9/B/\1[OX5^(-,\0:3XN\&>(?&.HZQ9Z)?C2YI+2=)+J61_)EV2+^^9B
MDJ)M<^:JK^D%[?66F6DFH:E>16\$*%I9YY B(HZDD\ >YJ6OYT4_:SU3_@N5
M_P '*/A_]EKXWWL^L?L^^!?%6NVVC?#F6X<:9J::197;K>7,*D+<-/=P)(?,
M!Q"PBZ9R ?T3Z;JFF:U8QZGH^HP7=M*"8KBVF61'&<<,I(/->(_\%$_^"A7[
M/W_!-#]F;6?VD_V@/$$<<%I$T/A_0(IU6\U_4"I,5E;*>2[$?,V"L:!G;"J:
M_$3_ (*D_M$W?_!O5_P75\,>)OV++#_A%/A7XU\&:-XB^(/PGT(>1H=_!)>W
MEC=B&R7$,$OEV7F1NB@I*3CY6=&]%_X/4?@A\()?@_\ "']JW1+.^N?%.N>)
M'T<:M+XBOIK;^S!9/.D<%I),;:W#.%=GBB1W."S-0!^K'_!(3]J#XG_MI?\
M!.7X9_M3?&2YM9/$GC6QO[_4%LK98881_:-TD4,:J!\D<21Q@G+$("Q9B6/T
M9J6IZ;H]D^HZOJ$%K;Q#,D]S*J(@]2S$ 5^7O_!M;_P3A_8[\,?L'_ []O#1
M/ACJ$7Q2O_#6HF[\0MXTU>2!S)=7=L^+%[LV:YA 7B$8/S##<U\[_L$?!_\
M:S_:6_X*.?M"_$;_ (. ?V08[SX8:7H=U)HGBGXQPM#X5\)&*^$<5MHYNF%D
M\,EO*Y-S%N<?9D<RAY7,@!^Y>GZCI^KV4>I:5?PW5O,NZ*XMY0Z./4,"017\
MZG_!XY<>(_V>?VL/A=XS^!WCWQ-X4N_&WA._G\3)H/B6\MH;V>"YC6.9HDE"
M"3;(5+  D*N<X%<-_P &UW[2GB;X*_\ !=;Q+^Q]^S[\2KNX^"OC/7?%MM8:
M FHO<:?-;627=S87L0<D>;Y=LBB8?,R2,"3GCNO^#X'_ ).#^ G_ &)NL_\
MI7;T ?NW^PIJ%_JW[$/P;U75;V:YNKGX5>'I;FYN)2\DLC:;;EG9CRS$DDD\
MDFNM^+WP6^&/QZ\'OX!^+7A.+6-)>42_9I)Y(BD@5D#H\3*Z,%=@&4@C/!KC
M?V!/^3$O@K_V23PW_P"FNWKUJ@#^17_@G6OB_P"+7_!<7PQ^QU\4_C#\0-<^
M'T_Q6UC1+S0[CX@ZK%]HL[?[8(T:6&X24$>4AW*P)QUY-?J%_P '!G_!/O6?
M^">G['<W[>O_  3K_:I^-7PRU/P9KFG0>(= L_C%KM[87]E=7"VJN%N[N5TD
M2:6'Y0_E%&<%.A'Y2?L ^+?%O@7_ (.(]*\6^!/A;JGC;5['XX^(GL?"NC7]
MG:W6HOYE^/+CEO9H;=" 2V9)$&%/.< _5G_!:C_@O7XQ_P""IT5E_P $I?AQ
M\"9?@O;ZI\0[33/'6L?%?6T@DAO+>Z\N.TN5A1TLX([D))+*6D.8EX158L ?
MI3_P;'_\%:/C)_P4^_92\4:#^TG<PZCX_P#A=JUI8ZIXC@MDA_MFRNHY'M;B
M5(P$6<&"='V*%8(C8RS5^E=Q<06D#W5U.D44:EI))&"JJCDDD]!7Q1_P0M_X
M(^Z)_P $@/V7]1^'.L>-[;Q/X[\8ZI'J?C?7K"%H[0R1Q^7!:6P<!S!"K2$.
MX#.TLC%4!5%_,C]J[_@I+\-OV^_^#AFR_9$_;-^-6B>%OV6/@UXHU2QU;PSX
MGUR*QT37]5TRWF#2:D966*YWZC&L:12;D\F/:%S+(7 /Z"M-U/3=9LH]3T?4
M8+NVE&8KBVF61'&<<,I(/-?G]_P< _\ !:KP9_P2O_9ONO!_PR\4V-Q\<?&=
MBT/@?1@L<[Z1$Q*-K%S$X91%'AO*612)I0%VLB2E?SS^''[>GP)_84_X.3="
M^%W_  3J^*WA;4OV>/CI?:'I7B+P?\/M7@N/#EKJVH*+-9K6.W8P6LT=V(96
MV 8261,!6 7Y5_X.V?V?_A;\ _\ @JY$OPRTG4;=_&7PYL?$GB2?5/$5]J4M
MWJ4^H:C%)+YE[-*\:>7;PHL*%8HUC5411Q0!_5]17Q)\4?\ @DQ^P'^RM^PK
M\??#/P0^!LVGVGBGX=WMUJRZOXOU?6"+FPLKR2RN(6U&[G-M+"\TCK)#L;<0
M23M7'Y3?\&7FKZM\3/VA?CSX5^(^J7/B#2[OX<V4%UINMSM=03127;I)&T<I
M965E)5@1@@D'B@#^C2BOY=/^"9#W_@#_ (.QYO@OX4US4;;PMX?^.GQ#TK1]
M#_M&5K>VL[:VUJ."%49B-J(B #MM%?6/_!ZSX5T/P3X"^"GQF\%V9T?Q1JFO
MZIIFJZWI4C6]Q?6L=O \<4[1D&4(V=F[.S>P& QR ?NGJ.IZ;I%HU_JVH06L
M"$!YKB4(BY.!DL0!SQ4]?SW? _\ X(K?MC?\%L/^"07P2^)/BS]M*?PFN@:4
M;'X>_#W4[.:?1SIUO/-;RZA>NC>8]_<2I)*LNUE2#RH@N2SCK?\ @ZC_ &:[
M']E#_@E7^S7:6?BFZU/QUX&U'1_ =Y\0HR]M?ZO8V^BW199G5BS1M/;^<J.S
M[&=\'+,6 /W<U35])T.R?4M;U.WL[9,;[BZG6-%R<#+,0!4Z.DB"2-@RL,JP
M.017\VVE?\$ZO"W[07_!K%#^W#\>_C=X[\3^*/"&AZIJ'PWTFX\021Z3X:@B
M\1W$$T2VJG9<RSM]H>2XFW28DCC4JL*@_8?_  9E?M$_%+XL_L$^._A'\0O%
MM[J^G_#WQU';>%OM\[2-86-S:))]DC+'B)94D=5Z*96 XP  ?L/1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 ?-O_!6W]@72_P#@I=^P1XZ_90DU"WL-
M8U6TCO?"6J70/EV6KVSB:V=R 2(W93%(0"1',^ 3BOP9_P"#<O\ :XU#_@B[
M_P %'_B!^Q=_P4+TJY^&5EX_M+73=4N_$P\BWTO5[.64V4\LI^06DL=Q<H+E
M28CYD3[O+RX_IXKR[]IK]B7]D7]LS0X/#W[5'[.7A#QW!:*18R^(M$BGGLP>
MOD3D>;!GOY;+F@#M]3^)/PZT3P0_Q,UGQ]HMIX;CM?M3^(+K588[%8,9\TSL
MPC"8YW;L>]>1_LH?ML^ OVZ]:\=3_!?P?JE_\,= -MIVA?$^9#%IWB^]<W*W
MZ::& :>VMMENGVL?NI9)I%C+"$LWE_@+_@WZ_P""-WPVUZ'Q%X<_8*\(SS07
M GBMM<N;W5+19!_%]FO9Y83TZ;,5]?:3I.EZ#I=MH>AZ;;V5E9P)!:6=I"L<
M4$2@*J(B@!5    & !B@#^:__@W6^ /BO_@G/_P<4^,OV/?CK"=.UNW\&>(-
M"T22\'EC5D$UK>6US#G&])K6V:9<<[2<@$$"E_P5[_9[\4_\%'_^#I.']FGX
M,6KZJ;2Y\,6?BB]LAYD6E65M:6]Q?W$K#A1#'(P()YDVQ_?8+7] G[3W_!/_
M /8S_;,U#2=<_:8_9ZT#Q3JN@L#H>O3Q/;ZEIX#;PL-[;M'<1+N^;:L@7/.,
M\U8_9>_83_9!_8NMM4B_9@_9_P##WA&?7)O-US5+&V:2_P!2;<6S<7<S///A
MB2 [L 6)')- 'Y#_ /!\'<VZ_ GX 6C3*)7\6ZXZ1D\LJVMJ"0/0%E_,5W7C
M+4]/?_@S ANEO8C'_P *8L(?,WC'F?VQ#'LSZ[_EQZ\5^FG[0/\ P3U_8=_:
MN\60>.OVEOV5? _CK6+6U%M:ZCXIT&*\EAA!SL0R [5SS@8S6<__  3)_P""
M?4OP?3]GR3]CWP"W@6/5#J4?A ^'XCIJW9&#.+?'EA_?'7GK0!^7'_!D1=VS
M?LH?&ZR6=#+'\0["22/=\RJUCA21V!*MC_=/I7Q1_P &N.J:=<?\%\]:NH+Z
M)X[W0?%AM'5P1-F57&WU^4%N.PS7]#GPT_X)B?\ !/7X,VVMV?PD_8Z\ >&8
M?$FEMIOB"+0O#T5JNHVC=8)A&!YB'T;/4^IK.^'_ /P24_X)E?"CQIIOQ&^&
M7["OPR\/Z_H]TMSI6LZ/X4M[>YM)5Z/'(BAE/T/M0!^!'_!ZM_RE-\ _]F_Z
M5_Z?-<K]&/\ @Y$_;<_9J^('_! 35KKX9?&'0=?M_BM=^'+#PHVFZ@DDET\&
MHVNH3#R\[T:..SD$BLH:-L(X5CBOSD_X/4;FWG_X*H^!HH9T=H?@'I23*K9*
M-_;6MM@^AVLI^A%?NGX@_P"",W_!*7XX?$&R_:2^(7[#_@#6_%%^D-_=:J^G
M$0:A,RAC//;HPM[EG)W,TD;%R<L3F@#X#_X-TM#^(O\ P35_X( ?%W]NWQ=\
M/+J]O=5.N>.O#6@3(T9OM/L=-CBM6?C<D<LMO.^\#_4LL@R",_)?_!(S_@I=
M\#?VL_CQ\9_VI?\ @J_\8=5\9_&S_A'OL'P!\*2^'KS4K:R>ZBNEGAT73[6*
M5(;G<+6-<*KA6=]S%I7']*1\.^'V\/GPDVA69THV?V0Z8;5/L_V?9L\GR\;?
M+V_+MQC'&,5Y%^SM_P $Y/V#?V2?&%]\0OV:?V1_ 7@K7M1#K<ZSH/AR"&Z"
M.<M%'+MW11'O&A5.!QP* /YZO^#-'XN_"_X8?\%!_'FD?$3Q_I.BW?B?X;II
M?ANUU*^2&35+Y]5LMEM;JQ!FE(RVQ<G:K-C:K$4O^#SZ\M+C_@J_X4AAG1VM
M_@=I$<ZJ<E&_M35VVGT.UE/T(K^B#X.?\$X?V"_V>_C%J'[07P1_9&\!>%_&
MFIM,UUXCT;PY##<J9<^;Y3!?W ?)W",*&R<YS63\4/\ @E-_P3:^-GCS4OBC
M\7_V(?AMXG\1ZQ<M<:IK>N>%H+FZNI&.2SR2*6/Y\=!0![];26\UM'-:.C1.
M@,31D%2I'!&.V*_F$_X/4[FWF_X*E^ X89U9X?@)I:RJK9*$ZUK3 'T."#]"
M*_I?^&'PL^'?P6\#V/PU^%/A"RT#0-,C,>G:1IL7EP6R$D[47HJY/0<#M7CW
MQ0_X)3?\$VOC9X[U+XH?&#]B+X;^)_$>KW#3ZGK>N^%X+JZN9"<EGDD4L?SP
M.@H \Q_X*,_&3]B2[\,?!_\ 8Z_;W\(:#JGPP^/T5WHT>M:W=^5;Z?JL-M;S
MV#"8$& R;Y52X5U9)?*P0&8C\*/VWO\ @DQ\8_\ @BS_ ,%@?@-I/[$OQAU#
MQ!+X\\86EY\,1O"ZO9L+Z*"6RO%BPLT3+-L,N%2:)I59%"OG^D+Q?_P3U_8>
M^(7PZ\.?"'Q_^ROX)UWPIX02Y7PQX:UG0HKJPTSSTV2&&"4-&AV\ @93^$K6
M'^SU_P $LO\ @GU^RM\31\9_@1^RYX=T7Q7'9FTL_$$K3WMU8VY!4PVLEU)(
M;5-K,NV'8-I*XP<4 ?A=_P 'A'[*GQ ^$G_!0/P%^WA'H-S=>"O%NB:?IUWJ
M,499+75M/E<M;.1PADMO*>/.-YCFQ_JS7UA_P><_%?P5XE_X)J_!_P ,>%_$
MEIJ$OB[XMV6MZ"+.82&_L8='U!3/$!]],WUM\PX_>IZBOU[^+OP;^$WQ^^'V
MH_"?XW_#?1/%OAG5HA'J6A>(=-CN[6X .06CD!7*D!E;JI (((!KP[X0?\$=
M_P#@F=\"O'^C_%#X;_LA^&H==\. #PW>ZK+<ZD-&PY<&SCO)94M"&)*F%4*G
MIB@#XO\ @/\ LF^.OV'_ /@TW\??"/XR:;)I/B>]^!?B_6]<TV\&R2RFU&&[
MGAMG4\I*L4D".AY$@9?:OFC_ (,9KJW$?[3MF9U$K-X,=8RWS%1_;@) ] 2/
MS'K7[E_'7]GKX'_M.> V^%_[0GPLT7QCX<DNDN9=$\062W%K)*@8(S1M\K$;
MCC(/7-><_"__ ()>_P#!.[X)7VI:G\'OV,_A[X7N-8TF?2]5GT'PY#:O=V4R
M[9;>0Q@%XV'!4\4 ?SR_\&VVIZ?/_P '%NKW$-[$T=XWC7[*ZN")<^<XV^OR
M@GCL,U_4E7SKX%_X)'?\$Q?AAXPT[X@_#C]A'X8Z%KND72W.EZQI/A.WM[FU
ME7H\<B*&4^X-?15 '\_O_![!^QY\1=5UGX5?MT^&M%N+WPYINCS>$/%-Q!&6
M73)3</<V4DF/NI*9KE-YX#HBDYD4'W#_ (+T_'7X?^(?^#8+P'K6D^)+.6'Q
M[H?@2WT,1W"G[1(L=O=O&H!Y9$MI=PZJ48'!%?K[XX\#>"OB;X1U'X?_ !'\
M(:9K^A:O:M;:KHNM6$=U:7D+##1RQ2 I(I[JP(KYO\&?\$3O^"5?@+Q3IGB[
MP]^Q5X3:?1+R2[T2QU)KF^T_3IW8.TEO97,LEM"Q8!LI&,$ CD"@#YU_X-1O
MV0?B+^R7_P $I;+5_BQHEQI6J?$[Q?=^,8-.O8S'-;:?-;6MM:EU/W?,BM!.
M,\[)US@\#\I/^#0Z^LF_X+0>*9%NXRMS\,?$ MSO'[T_;[%OE]?E!/T!-?TU
M_$SX6_#SXR^"KSX<_%+PC9:YH6H($OM*U"/?#.H/W77^(>QX->*>"/\ @D=_
MP3&^&?BBT\;_  Y_85^&>@ZS82;['5M&\+06US;MC!*21@,O!(X/0D4 ?15?
MG=_P<G_\$J/&'_!3O]B"V?X)Z6EY\3/AEJ4NM>$=/9E5M5@DC"7FG(S'"O*J
M12)GAI+:-"0'+#]$:* /Y_O^#2'_ (*6?#?]FS3_ !S_ ,$O/VMO$<?@+Q%_
MPF$NL>#$\7M]@WW<D<=O>Z5(9]ODSJ\$<B1/AG:28#YE"G]T_C/\?/@G^SI\
M/KOXK?'CXK^'_"'ARQA,MSK/B#58K6  #.%9R-['LJY9B0 "2!7G'[4W_!,G
M]@#]MC4!K?[4G[)7@OQ?J@C$8UV]TD1:CY8& GVR$I/L Z+OP.PKBO@9_P $
M0/\ @D_^SCXLLO'/PI_8?\'0ZOID@DTR_P!;6XU=[)P=RO#_ &A+,(6!Y#)@
MKV(Q0!ZK^Q[^TW/^UW\*[CXW:?\ "7Q#X4\-ZAK<\?@J3Q3:FUO-=TE$C$6J
MFV<"2VBG<RF))0':)8Y"%\P*/YL?^#;GXC_#?]D'_@N3XQT[]IGX@Z+X%CM-
M \4Z%<WGBS4XM/@AOX[R)F@>6=E1'Q;R\,1DKCK@5_5'7S?\9/\ @D#_ ,$R
M?V@_CH?VE?C1^Q9X'\1>-9)4EN]8O].8B^D0 *]S K"&Z;  W3(Y(4 D@ 4
M?SI_&_X]?##]H;_@Z\\)_'/X6:\U]X6UK]H[P*VCZM- T,=[!')I4"W,>\ M
M!(8_,BD^[)&Z./E8&OU1_P"#S>YMX?\ @D[X=AEF57F^->D+$K-@N1IVJ,0/
M7@$_A7W=\1_^"5__  3>^+_Q!NOBQ\3_ -B'X9ZYXEO&@:YUS4?"5M)<R&&)
M(HB7*Y^2..-%] B@=*Z'XY_L%?L8_M.66B:;^T1^S-X/\;6_ANS%KH,'B?1H
M[Q+"$  +&)00O  SU..M 'YB?\$:=3T]/^#3#XCN][$%M?AS\3%N27&(F\K4
M&PWH=K*?H17SI_P8[75LGQ=_:&LFG032>&_#SI$6^9E6XO@Q ] 67/\ O#UK
M]KO#W_!,G_@GUX2^%VM?!'PO^Q[X!T_P=XDN8;C7_"]GX?BCL-0EBSY;S0*
MCE<GDCT]!4?PF_X)>?\ !.[X#>*'\;_!/]C3X?>$]8DLIK.34_#OAR&SG:WF
M0I+$7B )1E)!'3\A0!_/+^R!JFFR?\'AFJ7R7T1A?]I'QM&DH<;68KJJ  ]R
M6^7ZU]5_\'R'A+7;WP'^S?X[M].E;3--U?Q387=V$.R.>YBTN2%">@++:3D#
MN(V]#7ZIZ=_P1S_X)7:/KL/BC2/V /A7:ZG;W0N;?4;;PA;I/%,&W"19%4,K
MAN=P.<\UZY^T'^S7\!?VKOA5>_!']H[X4:-XQ\*:@4:YT76[02Q;TY21#PT<
MB_PR(5=<\$4 ?A'_ ,%*_P!N;]E3Q=_P:S_!C]FWP-\:=$\0>.;GP3X-MKSP
MSH-ZEY=Z3_9WV:.[DOHXB39QI*@A#2[=\DB*N[)Q]8_\&:MS;S_\$E-8BAF5
MFA^,FL)*JG)1C9:<V#Z'# _0BOM;X=_\$A_^"9/PJ^#VK_ +P3^Q)X @\)>(
M+J"YU[2+S15O!J4D#[X3<27!>2;RVRR!V(0DE0,FNJ^$7_!/?]B'X ^'M?\
M"7P/_9<\&>$M,\4VGV;Q'8>'=&CM(M1B_NRK& '].><<4 ?SH_\ !!'4].E_
MX.>M3N(KV)DO/%GC_P"R.'&)LPZ@XV^OR@GCL":]P_X.%_\ @K5\3?%'_!5K
M3O\ @F9\3OB;X@^'7[.GACQ'X=M?BS)X9>6"^\0Z?>1VEU?32R1#S6MTMKAD
M2!,JQC9RLA**O[)>%/\ @D!_P2Y\">);/QEX)_8)^%VD:OITXGL-4TSPE;P7
M%O(.CI(BAE;W!KI_C[_P3G_80_:G^).F?&#]H[]DGP%XU\3:1 L-EK/B/P[#
M<S>4K%DBDWJ1-&I)*I(&5=S8 R<@'\O?_!Q!\4/V1OB!^WI\.]9_8BTRUM/A
M1HOPFT73O"\^E^&[C3=-G@@U#4/,DLQ-%']HA#ET,Z!E:6.4;F96K]N/^#ES
MQCX0_:._X()_$'XH? 7Q38>,/#K:OHMY!K?ANZ6\M9[>#6H(9IHY8B5DC1PP
M+J2H"DYP,U]G_M#?\$[_ -AG]K$^'C^T=^REX'\8'PG +?PX=8T&)SI\ Q_H
M\> ,0_*/W7W./NUZ8/AU\/AX!_X52/ NC?\ "+_V5_9?_"-_V9%]@^P^7Y7V
M7[/M\OR?+^3R]NW;QC'% 'XX?\&@?[4_[/WP]_X)S7/P2\4?%/28O&NN_'>^
MM=(\'0W(EU6Z,^GZ>4F2U3,I@5(IW>?;Y:)!*S, C8^%O^"LVIZ='_P=SV%^
M]]$(+?XT_#'SYBXVQ[++0MV3T&,'/I@U_1/^S9_P3D_81_8\\6:CX\_9A_9/
M\#^"-;U6)HKW5]"T*.*Y:)F#-"LF"T<1(!,:%4)4<<#'+ZU_P1W_ ."67B37
M[CQ7XB_8$^%M_JEW<&XNM2O?"5O+<32DY,CR,I9F)YW$YS0!ZW^TG\ O /[4
M_P"S_P",OV</BC8_:/#_ (V\.7>CZHH4%TCGB9/-3/21"0Z-U5D4CD5_.-_P
M;N?L4_M4>'_^"IWQ._X)^_$:ZFMOA[\//$EIK?QFTHPG[-J][H-^SZ*BD\%)
M+UX[D @B6"%^U?TQ>&O#>A^#O#UEX4\,Z;'9Z=IUJEO8VD6=L,2 *J#/8  5
MS_@WX#?![X>?%#QC\:?!/P]T[3?%7Q >P;QGKEM$1/JYLH#!:F8YP?+B)1<
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
M/V-?V5OVS_"MGX)_:J^ 7ACQYING7)N--@\1:6D[6<I #/#(?GB+  ,48;@
M#D4 <=XY^/WP6_;,_9L^+O@7]F#XCZ9XXGC^'EW:O>^&9Q>6?VF_TZX-O;+<
M19B>?9L=H58O&L\+.JB5-WX"?\&?G[3G[//[+W[3?QIOOVC_ (T^&? EK=_#
MJ"2VN_%NLPZ?%+]GO TR(TS*&D57#>6,L0&(!VG'])GP5^!GP:_9Q^'5C\(_
M@'\+]"\'>&-,#?8="\.Z9':6T18Y9MD8 +L>68Y9B2223FO%;W_@CI_P2]U'
M]H27]JC4/V(? <_CJ?4O[1FU>;2BT3WF[>;HVI;[.9B_SF7R]Y?YR=W- '\]
M/_!++XG>%OBI_P '8\?Q=\-O=0Z/XI^.GC_4]+&J6;VLXAN[;6I(5DAD >*0
MB1 8V 96.TC(Q7V]_P 'P-W;)^S_ / .P>=1-)XQUJ2.(M\S*MI;AB!Z NN?
M]X5^INM_\$IO^";7B/XG7OQIUO\ 8A^&UQXOU+6Y=8OO$S^%H!?3:A+*9I+I
MI@N_S6D9G+YSN).:W?V@?^">W[#W[5WBN#QQ^TM^RMX(\=ZO:VPM[74/%.@Q
M7DD,6<[$,@.T9YP,9H \A_X("2VTW_!&O]GM[1T91X!B4E""-PGE##CN&!!]
M\U\4?\'LES;K_P $\_A;:-,HE?XS0ND9;EE72=1!('H"R_F*_5OX ?LN?L[_
M +*GAB?P3^S=\&] \$Z/<S>;-I7AS3UM;<R<G<(TPH.68D@#.>:POVB?V#?V
M,OVN=;L/$?[3_P"S+X-\>WVEVIMM-N/%6B17C6L18L4C\P$("Q)..O?H* /R
M3^">IZ<O_!DE?RM>Q!4\#Z_"Y+CY9&\7W:A#Z$EE '?(]:/^#(*YMW_9L^.U
MFLRF6/QQI3O&#RJM9RA21Z$JWY&OU.@_X)>_\$[[;X2S_ 6W_8T^'J>";K5D
MU2Y\)IX<A&GRWJ*56X:#&PR $C=C/Y5K_L^?\$^OV(OV3_%%SXU_9G_99\$^
M!-5O;7[->7_A;08K.2>+.=CF,#>,\@'.* /8:*** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HKRCP]^VE\ O$_P"V
M7XC_ &#=(\6>9\1/"_@BR\5:IIH"[%L;F=X0H8-GS(\0.ZD#"7D!!.X[?5Z
M"BBB@ HHHH **** "BBB@ HHHH **** "BBOD_\ X*!_\%KO^">W_!-?4XO!
MG[0OQ>DO/&5S&CVGP_\ "%B=2UF17Y0M"A"6X;(VF=X]^?EW4 ?6%%?$?@W_
M (+37>L^&T^(GCS_ ()6_M;>$O"4D(N#XCU7X6P7 M[; )GGM+2\EO$0#+$K
M ^%&>E>G_LA_\%6OV)OV]/BOJ?PJ_9&^+,?C631?"D&NZOJEA930P6:37#0Q
MV\@G1)%GRC,8RH*KC=@D"@#Z-HHHH ***^??^"@7_!1SX/\ _!-CX:I\:/VA
M/ASX[NO!RS10WWB;PKHD-[;:?-+)Y<4<X,Z21EVP VPIEE7=N8"@ ^)O_!*/
M_@FO\:?'6I?$[XN_L0?#;Q-XBUBY:XU36]<\+07-S=2L<EGDD4L>OKQVKUWX
M3?![X7_ GP5;?#CX/>"+#P[H-G_QYZ1I</EP0# &$3HHPH  P!BO*/\ @G1_
MP4B_9P_X*B?!'4_V@/V7WUYO#^D^*9_#]V?$.EBTG^V16UM</M0.^4\NZBPV
M>NX8XKWR@ HHHH ***^0/^"K7_!:W]DS_@D)8^#A^T1H7BS7-3\;W%Q_9&B^
M#]/@GG2VMS&)[F0W$T*(BF5%4;BSL< 85F4 ^OZ*Y3X%?&KX>_M'_!CPK\?O
MA-J[7_AGQEH%KK&A7<D+1O):W$2RQED;E&VL RGE2"#R*ZN@ HHHH **Y#XX
M_%BY^"?P\N_B)#\*?%OC&.QR]SI'@G3X;O4!$$9FD2"2:,S8VXV1[I"6 5&Y
MQ\&_!?\ X.J_^"2OQJ^,N@_!&S\8^-/#NH^(-733+;4?%GA865C;7#ML1;B;
MSF\E2^$W,-JE@6*J"P /TAHK/\5:U?>'/#EYKNF^%]0UN>T@:2+2=*: 7-T1
M_!'Y\D4>X]M[J/>OF;]FW_@K1\)?VJ/VB/%'[,'PT_9P^,MOXH\"ZC!9^._[
M?\&P6-KX>>;<8S<S276W#JK.@CWM(@W(&'- 'U31110 4444 %%%?-W_  4/
M_P""H/P-_P""8WA"Q^)?[2OPZ\?2>$KZXBM1XK\,:%#?64%W(9=EM+_I"RQN
M1$6!*;#N4!RV5 !](T5XE^P#^W[\ O\ @I/\ $_:4_9M?6F\-/K-SI:G7M-%
MK<>?!L\SY [?+\ZX.>>:]MH **** "BBB@ HHKSW]IO]J[]G/]C/X4WGQN_:
MA^+^C>"_#%DP1]2UBX*F:4@E888U!DN)2 2(HE9R%)"G!H ]"HK\^O@Y_P '
M"GPO_:ENKO5/V.?^">7[3GQ6\+6%VUO<>-O#'@&RATR5E^\L$EY?0^8XXS&0
MCC/('&>SF_X+V?L":5K^G_"[QQJ?C/P=\3-2\2Z1H=O\)?'?@F\TCQ ;C4;V
M*TA<13H(98093(TL<KILC8AB=H(!]I4444 %%%% !1110 4444 %%%% !111
M0 445\;?\%5O^"X7[(/_  2)U'P=X>_:&T+Q=KNK^-/.FL-)\':=!/+;6<+H
MDEU,;B>%%7<^U5#%F*MP ": /LFBN=^$/Q4\#_'3X4>&?C9\,M8_M#PYXO\
M#]GK6@7WE,GVBSNH$GADVL RDQNIVD C.",U?T?QGX1\0Z[J_AC0?$MC>:CH
M%Q%!KEC;7*O+82R0I/'',H.8V:*2.0!L$JZMT(- &G1110 445\W?M^?\%.O
MA%_P39\'/\4?VD?@]\1_^$,2[@M6\9>&]$M+^Q2>8?)&X2Z$\/S?)NDB12V
MK'(R ?2-%?%G[!W_  72_97_ ."EGBS4_"?['?P@^*WB;^P6MO\ A(M4F\-6
MEE9:4D[.L;S37%XB\B.1@B;I&$;[4;&*^TZ "BBB@ HJIKVI7&BZ'>ZQ::+=
MZE+:6DDT6G6'E^?=,JEA%'YCHF]B-J[F5<D98#)'POX&_P"#BS]@CQI^V9I_
M[ ]WX7^)N@?$R_\ %R^&GT7Q!X02!;74"^S9+(MPP"YYWKN!!!!((- 'WG11
M10 4444 %%%% !1110 4444 %%%-FD:*%Y5B:0JI(1,9;V&2!F@!U%? ?Q'_
M .#CK]@[X,_M4P?L6_&7P%\5O"OQ$EUVPTE]$U?PA#B&>\,7V=C+%=.C1L)H
MV#H67:V1FOOR@ HKRG]K_P#:S\/_ +&7PGO?C;XX^$?CKQ-X<TFTFN]?N_ V
MBQ:A)I5O$%9IYH3,DIC"EF+1JX18W9]@&3\M_L7_ /!RA_P2^_;H_:#T;]F;
MX3^-O$^D^)_$0D30AXN\/BQMKZX4;A:I+YKCSG&[8K8WE=H)8JK 'WU17/\
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
M%_Q'_P""0O\ PDWA>TEFM_!'Q1T;7=<$2D[;-H;RPW$#^$37T!/IU[5\R_\
M!CQ\1=#E\%_M"?"62Y1-3@U30-7AA8_-- \=["[#U"-&@/IYJ^M '[U5\M?
MC_@G!X*_9N_X*9_%']M;X1Z%INCZ)\6? EA;^)M+L@(]VOP7DKRW:QJ JB>%
MXF<CK*DCG+2$U]2U#J-S)9:?/>16S3-#"SK"G5R 3M'N>E 'QY^U)_P6E^!7
MP/\ VO=)_P"">OP.^%7BKXS_ !QU9"[^!O \EG#%I2B W!-]>WDT4-L?)!D*
MY8JN"X7<FZY^R'_P67_9T_:9_:@\1?L(_$/P3XF^$GQS\+R.NH?#7QXMMYMX
M%B$[/8W5K-+!=KY++*-K!FC)D5612X_#_P#X-0/'?BK]H3_@N5XT^.?Q1U%]
M0\1ZWX \2:]J5[.26>]N;^R\U^>F?/<>P.*@_P"#B'XE^*O@)_P<E:'\9_A;
M<26WB#0I/!FIVCVS8:6XB6(!&Q]X.B*A4\,I(.0<4 ?T _\ !1S_ (*;?LJ?
M\$MO@C'\;OVHO%%W%%?W36GA[P[HMLMQJ>MW(7<T5O$S(N%7!:1V2-,J&8%D
M#?EG_P %PO\ @K=I_P"V!_P14\8:)\0/V,_BS\(Q\11H&H?#/6/'&C1/IOB:
M!-7LKK9%<V[N()S:I)<+%,L>^)&:-G KY,_X/+_BCXK\7_\ !4+PG\*=9U"6
M/0?"OPNL&TRU+'RUEN[NZDN+@#^\P2%">XMU]*_63_@Z1\->']%_X(1_$K1-
M+TJWCM-(NO"\6EQ+$,6RIK5A$NS^[B,E<CL2.AH \B_X,KO^45WCK_LONJ_^
MF71*^OOB7_P6!^%J_M=:M^P;^R1\%O%'QR^*GAK3)M0\9:3X.OM/L]/\.Q1,
MBO'=W]]/%$L^^2-/*3>0[[6*,"!\'_\ !IMX[UGX6_\ !"[XZ?$WPY )=0\.
M?$OQ3JEA$R[@\UOX:TB5 1WRR#BOD3_@TH^)?[7]_P#M!?'G4_V=/!OPV\8>
M+]=T73-0\07GQ3\=:CI,S1_:[DRRPO::;>M.SS3(9"X3!V'+%C@ _<__ ()_
M?\%5?V=/^"COPZ\6>(_@;HOB*S\7> KR6P\;?##Q#;06FNZ3?)YBB!T:;R2)
M'BD1)/-$>Y&#M&58+\M^.?\ @ZN_8M^&/[2DW[(7Q'_9 _:'T'XAV_B6'0;C
MP]J_A_P[;F*^FD1(E:9];$(C<R(RS;_**.KA]A#5S?\ P2T_X(Q?\%$/V._^
M"N_Q1_X*(?&KQU\)+;PE\6G\0W'B'PAX(\4ZK?36\NHZ@M_$B"YTRVCD$4RX
M\PE6VEL+\Q%>!_\ !Y;_ ,$W-*UKP#X:_P""GOPXLK>VU709K;PU\1$1E1KR
MTE<BPO.VZ2*5C QY9DFAZ+"< 'Z<^-/^"H">$?VQ+#]ARP_82^.6O^-;_P (
MVWB<RZ#;>&Y=.M-+F=HC/<7,FM(MOLGCEA*R;2[Q-Y0E4HS?&W_!QG^T_P#\
M$C_"7C;P)\(_^"L_["OQE\3QVWVJ_P#AWXS\%/IL<%Y'BW%[#%-'K$%P$#-
MLD<T2?,%9,C:Y[#_ (-9_P!JGPA^V)^QKXI^,/C/QI?^(OC?_P )+#I_Q=UK
M6YTDN[F*WMQ%I!CVJ-EH+-"%7'-P+V0Y:1V/QI_P?+_\AG]F3_KU\8_^A:+0
M!^LMS^WY^Q!^QK_P2Q\$_MM7.F7G@KX.1_#G0KWP9X:2PC_M".RN[.%M/TR*
MW25D:Y\MXTVB5D4JS-)L5I!Y%K__  7DC^%OP<\+?'_]H;_@G/\ &OP1X-^(
M+Z</A_XEN/[(O[._^W/&+87AM+UY-,9TD615N$&Y0P!+ *?!_P!L_P#X)U?&
M/_@I7_P;'_LZ_";]GXI<^,?"7PP\">*]%T.2X6(:TUOX=%O)9AV(57:*[D=-
MQ"F2-%)4-N'YH_\ !-__ (+H_$C]EWPQ=?\ !*S_ (*V?#G5_%GP5,B>']2M
M-<M)H?$'@012KY84,!))#;2(CK"P\V'RU,+8C6%@#^J:BJ^D:MIFOZ5:Z[HF
MH0W=E>VZ3VEU;R!XYHG4,CJPX92I!!'4&K% !7\I_P#P5<_X(W^.]3_9Y\7_
M /!6#X$P7FL6,GQM^(-E\5]#1=[Z8EOXNU2VMM3A &?L_EI'%,O_ "S*K)RK
M2&/^K"ODS_@DGH6B>*/V,O%WAGQ+I%KJ&G:C\<?BC:ZA87L"RPW,$GC+64>*
M1&!5T925*D$$$@T ?"__  :U?\%SO^&J/ 5E_P $[OVJ_&'F?$KPKINWP#K^
MHS_O/$^E0IS;.S'Y[RV1>OWI85W'+12.WW7^Q7:6T/\ P4@_;.N8;=%DF\8>
M"O-=5P7QX2L0,GO7\^7_  7C_P""1'Q4_P""+O[7&C?M7_LDW^K:9\,=;\1I
MJ7@#Q!ILS^?X1U>-O/&G/+R1M*E[=VY>-64[FB=F_7+_ (-G?VX?&/\ P47A
M_:!_:T^(OARUTOQ#K_B/PM:Z]!8G]Q+>67A^WLY9XU_@65H#*(^=GF;<MMR0
M#ZP_:5_X*I? CX#_ +2NC_L0^ /!_B3XI_&[7M.>^L?AGX$^QBYM;98FE\^\
MNKZXM[6S0HI?#R^9MPP0AEW>+_ C_@X7_9Z\8_MU3?\ !.#]J/X!>.?@=\5F
MU2+3M,TWQG+8W5E>7<R+);VZW5G/(@DG22,Q$ Q2%U59"S*&^8O^"D_[,/\
MP3M_8=_X+,^%?^"E7C#]I/XA:]\9O%.N6-]X3_9R\ Z=%>ZMXAU3[.NG6^R8
MR*;6SE**K+-Q)B5(V89C7\Y?^"J7BCX\^(O^#C[P;XQ_:%^'.C>#/%]WXU\
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
M_!$3XGDCIK7AS'_@ZLZ_1FOSG_X.MO\ E"'\3_\ L->'/_3U9T ?'/\ P8Z
M?\*K_:);')\0>',G_MAJ%?;'_!1/_@XY_9,_X)>_M G]G/\ :B_9J^-<6K3Z
M6FIZ/JF@Z/H=U8ZK8/++$MS YU9'"F2&5=DJ1R IR@!4GXH_X,=?^25?M$_]
MC#X<_P#1&H5\\?\ ![)_RD*^%O\ V1F'_P!.VH4 ?I)^U=_P=3_L:?LPZ]X=
MO+7]F[XP^+/!'B"5H[3XEZ9X9CM=$OGC"^?'IUQ<R(FI/"S;7,3"//W9'!!/
MZ(_ GXZ_"[]I/X*^&OVA/@[XHBU7PGXMT6'5=%U-5*"2WD3<-RM@QLO*LC %
M65E(!!K\9?\ @[AT'1- _P""/O[.FDZ%I%M96EAXVTBVL;6T@6..WA7P_> 1
MHJ@!5 50%' "CTKJOV9_B]XW^$?_  9AS?$/P9J$\.K1?##Q'IUO=PN1)!'=
M>(KZQ9T8<JR13,0PY4J".E 'T39?\''?P"^+W[3.O_LX?L.?LF_%SX__ /"'
M123^+?$_PWTRT>RMX$D$;R6IN)XS=C?E5^X)2/W1D7#5^,'@WXR^ _VA?^#K
MWPW\:?AE=W4VA^(?C_IEU8_;]/EM+B/Y(5>*:"55DAE1U='C8!E9&!Z5]L_\
M&.^A:-%\)_VA?$L5O'_:-QXB\/6L\N!O\F."^=%SZ;I)#7R9XTL[2Q_X/$H8
M;*UCA1OVD;"1DB0*"[K"[M@=V9BQ/<DD\F@#^C']MW]N?]FG_@GE\!K_ /:+
M_:F\?IH?A^TE6WM8HHC-=ZG=N&,=I:PCYIIF"L<# 559V*HK,/FV7_@O#\+_
M (8>+?A?:_ME_LJ_$7X)>%/C5$)/AOXY\93Z9/8S;A&T<>HK9W4LFF2,LT+;
M95(429=D"2%?RH_X/7/C!XMNOVW/@W\$=2FEE\,:%\-CX@@L&D*Q2W=YJ5S;
MSDXZGRK"%<X) 8XZG/VU_P %@/\ @F5_P5B_X++_ +._@KX4W'AG]F7P58^'
M?$2:_IFLZ5\4]?OQ<Q-:2PB)4;P]$%0K*K[@3]P#'.0 ?8/_  4X_P""M/PN
M_P""4WA;2_B3\?/V:_BUXC\':G+';GQEX!TK2KRPLKQS)LM;@7&HP3Q.5CW!
MS%Y3;U59"^Y!YW^S_P#\' 7[.'[37[%GQ'_;Y^%'[,/QBN?A]\+I98_$LMW%
MX;@O6,,,=Q<&&W;6MS>5#+&YW;#)NVQ>:X*CV2U_8>NOCG_P2[TC]@3]MK4=
M/\0:G??"BP\,>-=8TB>2XBEU&"TBC.H6\D\<;M(MQ$MPCNBG>JDJ.E?S;_\
M!*GQ)>?\$\O^"M\O_!-G]M+QS/%\,[_XN6FD_$+1;.\3^RM5UC39IAHMQ=;@
M=UG]MDMY73* KL\W*QLA /ZA?V3?VDM5_:J^%-I\7;O]FSXB_#2RU**.?2=-
M^)EGIUK?W=O(FY9OL]G>W30#!QLG\J3_ &,<UZ?110!\@>(_^"P/PX\9_'/Q
MQ^S+^P_^S]XT_: \;?#15_X3V#P/?:58Z;H<I:1/LTM]J=Y;I+/OCD7R[=9L
M,CJ2I1@.>_X)C?\ !>C]DK_@IG\4-?\ V=O#OA/Q3\//BCX92=]2\">.+6*.
M>98)/+N#;R1.RR-$Y >-@D@Y(0JK,/AO]EWX!?L;?\$@O^"M'C7P-^P7\4/'
M'[17Q[^(.GW^FVOP@L;F"RTKPA:S745Y//KVK_.BB'RD&1&TR[L&$O+&:^+?
M^"(=QXPB_P"#J.[3QLFGPZU-\1/B*NNQ:-)(UH+G[)J[2K"T@5VB$@.TL Q4
M*2 : /VR_P""G?\ P7L_9J_X)+_$W1OAQ^U%^SM\8+F'Q+927/AKQ+X4TO1K
MK3]46(1>>L9EU2*9&B::-666).6!7<I#'R+]HW_@ZI_8V^"GPL\'_&SP/^S7
M\8_&_A'Q39V,EWXKTWPS';:1I-Y<VRW)TF2_DE-M-J4*%A+;PR2+&\;H9-R,
M%^./^#Y?_D-?LR_]>OC#_P!"T6N__P""N6@Z)I'_  :)? BUTG2+:UB'@KX<
M70CMX%1?/FL(9)9< #YW>21V;JS.Q.230!^O7[&W[7OP2_;O_9N\,?M4?L]:
M[/?^%O%5H\MG]L@\JYMI8Y&BFMIX\G9+'*CHP!*Y7*LRE6/R5\6/^#AK]GVR
M_;*OOV$OV0_V<OB/^T!X]T)K@>*(_AQ:VGV/3?LY"W"B>YF196B8A'(Q&'94
M$A<[1\P_\&]7Q7\8?!S_ (-F/B[\7_!EU(NL^"[3Q]JVA.AYCN+72_M,6W_M
MHN?J:^:_^#(K2M-U+]I_X\>+]142ZK!X'TR"&YE.Z3RI[V1YN3S\S0PD^I44
M ?-O_!4_]HKP-^U/_P '$WA;XP^ M(UW2[>Z\;>!K2_T3Q3H\FGZGI-];-90
M7-G=V\G,4T4L;HP!925RK,I#'^LBOY</^"[UG:6O_!T+I#VMK'&9O&7P^DF,
M: &1_*T\;FQU. !D^@K^H^@#&^(RJWP]UY64$'1KH$$=?W35_(5^WY_P2+^*
MO[%7[)O[/W_!2CX&ZAJUUX%^(OP^\-ZOJNJ6LK"Z\*>))K*&=MTB8*0RRYE@
ME&-CYB."(S)_7M\1/^2?Z[_V!KK_ -%-7R]_P3B^"OPN_:-_X(B_ [X%_&KP
M=:>(/"OBG]GWP[I^N:1?)F.X@?2X >1RK X974AD9592&4$ 'BO_  ;J?\%M
M-&_X*B_L^_\ "IOC/K=M!\;O .GQIXFMR5C/B&Q&(TU:%!@9)*I.BC"2L& 5
M944>Z?\ !)*TM;3P-\=1:VZ1B3]J_P"(SOL7&YCK<N2?>OYN?V]OV./VN?\
M@V__ ."EF@_$SX)^*[]=)M]2DU?X4>-98B8=7T\-MFT^\"X5Y%1_(N(N Z2*
MX"K*N/Z ?^#=7X_G]JW]A7Q/^TVWAO\ L=OB!\<?&'B%])%QYHLVO-0,YA#X
M&\*7*AL#.,X'2@#T+XB?\%;_ (4M^TUXD_8L_9,^#/B[XZ_%3P;IYN_&'A_P
M-=Z9:6>@J'1&CN[_ %.[MH!*&=5,41E<,=K!2& X3_@GG_P7Z_99_;P_:3UW
M]BG7?AQXO^%7QB\/W5[;7'@?QS!!NNI[,N+N"WF@D97FA\N1GC8(VU&9=X5R
MOQEI_P"SY^P]_P $HO\ @MEK_P 2_P!F3XN?$#XX_M#_ !0N]6.@_L\>&6MX
M8]*FU-_M=Q)K&JLQ2"T1=\P$J&6-!'*R2!0Y^&OV-;WXD?\ $6_;7OQ3L-(T
M_P 43?';Q"=?M/#MY+/907+VM\)HX)941Y8P2RAV1"PY*KG  /WZ_;\_X*N_
M!?\ 82^)?@#]G0?#_P 2?$7XM?%*]%OX&^&W@[[,MW=*7\O[1/-=2Q0VL&\,
MHD=N2CD#;'(R4?@5_P %6](^)_[8FD_L%?%7]DKXF?"[XFWWAB_UZYTWQC!8
M26(L[9HE66UO;*YFAO4D,C -&?E:&17"D '\S/\ @[-_X)V_MD3_ +0/@S_@
MK#^RFNNWUKX(\+6FG^()_#$LG]I>%IK&[N+J#5(Q'\X@_P!(.YT_U+1;VPKY
M7J?^""?_  7E\'_\%)/VC?A]\"/V]_!=BGQX\):7JD7PR^)>F1BWBU^*:U'V
MZSN84PL-P\5NLOR@12FW&%B=560 ^^?^"H/_  6V_9&_X)9ZCX?^'OQ-L/$/
MC'XB>+51_#?PY\$V:7&HW$;R&*.:3>ZK#&\@,:9)>1@P1'VL5_(7_@ZQ_;N3
M]J7]G;X0_#KXB_LT_$/X0>/M%\67FI7O@WXAZ5'&]Q836@1+NTN8'D@N8MZF
M-P&$D;C#HN5+>8^/O'&K?'__ (/!;&Y^*$C7,>D?M&V6EZ=!<G*0P:6R16:J
MIX S;1O@=68MU)-?9'_![Y9VC_LT? J_>UC,\?CK5(XYB@WHC64990>H!**2
M.^T>@H ^[/\ @@IXF\.^"O\ @AY\#O&7C#7;32])TGX>SWNJ:G?W"Q06EO%<
MW+R32.Q"HBHK,S$@  DUS7B3_@O9X2\3_ /Q?^UO^R/^P_\ %;XO?"/P)/=I
MXD^).CS:5IMD8[50]S-;6UY=K?W,42$N[BV50 3G 8KF_P#!*7]GSP-^U?\
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
M'\;6VK6^J:'X#EM7USPQ'?LLQMULYY8C<Q17,:>68V;]R,-AU&]WA7_@C_\
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
M<!NK;_X*"_LE_P#!0O\ :0_X-\_@S_P3Y^'7[!GC!OB5H.E^&]'\2Z?=^(]
MCM].CT2SBA>Y,W]HE9%N&53$J9; D\P1E5#_ +*44 ?F5_P;F_L8?M)_LU?\
M$YO%O["7[>'[*NM>$GO]?U::>6^UC3+RQU?3=0MXH7A1[.[ED60;90RNBKM*
ME68DA?A_]A+_ ()T_P#!6?\ X-__ /@I;XF\3?!#]C/6/C_\*_%VEW&B6M]X
M9URUM6O+)ITGM)YFE/\ H=S"T:K()4$1$DNQR"KC^A6B@#^;[]NS_@D7_P %
MR?VO/^"O0_;6D_9(T*XG@U3PYKACM/%]E;:/IB6L5L\6F"ZN)$EO)(5B6*:X
MBA*M+YI1=@45_19X'U/Q7K7A'3M6\<^%8M#UBXM5?4=(@U(7B6DI'S1B8(@E
M _O!1GTK5HH \C_;0^*7QD^&GP4UE/@/^S'XH^*'B;5-%OK?1])\/7^F6L4-
MT8ML)NI;^[MQ'$7<9:,2,%1_E)V@^0_\$9KW]IWP'^Q)\-OV7OVJ?V0O%?PX
M\2_#GP-::'=:CJ.K:1>Z9J*V:1V\+0265[-+O>(*Y62) I60;CA2WUU10!X)
M_P %)O\ @GC\#O\ @IQ^RKKO[,/QOL1$EXOVKPYX@A@#W.@ZFBL(+V'.,E2Q
M5TR!)&[H2 V1XM_P;V?L8_'']@+_ ()]/^R[^T)H"6/B'P_\1=> EMY-]O?V
MK7 ,-W W5HI4 =<@, <,%8$#[DHH _G5_9)_X),_\' 7[%'_  61\6?M-_![
MX*^#?$TFM:]K27GQ'^(/B&&31-3T_4)S(UW(L%PM\LF=C[(X_,5E*E60G,]G
M_P $:/\ @M%^S]_P7JM/VWO#?P'\-_%*VG^(,WB6;QK%KUKH6AW1O89!<F2)
MII[JS2)IY!Y8CFD(C&WS=P)_HCHH ^'/VD?&O_!2C]G_ /X*1V?QK^#G[+6J
M?%OX-ZG\%-(TGXEZ1X;UNRM+NVU:WU/595N],@O[B-;B58KEA)!O!>.2++[D
M05\<?L;?\$>_&'Q@_P""\-Q_P4_\._L<ZU^S_P#!?PQ)_:6B^%/%45G9:CKN
MNM8M;R2QZ?:S2K90&:1IVRP5B@VC,CB/]JJ* /PA_P""W7_!%']N7P%_P4YT
M'_@KK_P33^&0\<7(\3:5XCU[PC93QK=V&LV#1?O1"[H;BVN!#&76,M('>7*[
M6!%7_@N7^S?_ ,%J/^"S'P;^%&I>'/\ @G7/X$T_2=>NOLOP]NO%MC=ZNT\E
MNOFZC>W4C06]E;C AAA)\UR99) H\M:_>BB@#\Q/@Q^P;_P44O\ _@W9\0_\
M$V/%G@+2/ /Q2L? %SH'AZ:R\9PWD6K1/=/.\,DD*[+4S0,UJWSNN9"Q8+P/
MC?\ X(X?\$L_^"]_P._9@^-?[$>N_"SX=_"KX?\ Q1TR_CU7Q%X]>/4]56YF
ML&LWCL(]/NV7$B;$,EP"D8S)&)&!C?\ H#HH _##_@V&_P"":'_!5O\ X)P_
MM/?$/3_V@?V4]+\->"_%>GV=MK?BG6?%UI-(ALWN&C2Q@LY)3<M*T^"[F.-%
M!;<[ 1MR_P"W)_P1Y_;_ /\ @G]_P6FTW_@J_P#\$\/V?+CXK^$M1\<3>)]1
M\+:-?117UC<WJR)JEBZ,=WE3B>Y,4T:.L8EVNOR#S/WWHH _F*_X.S?B]^UQ
M\<[_ . 'Q%_:7_9CMOA%I=SI_B-/"'@^^\1Q:GK8 ;3#<7-^]N/L\ ?= L4"
M,[H(I&D8%PB?OO\ \$H?^46W[-?_ &0'P;_Z9+.OS"_X.B_V _\ @HG_ ,%/
MOBS\,- _9)_8C\4:OI/PUM=:AU#Q)J'B+0K2VU&2]DL]AMDDU 2E%6T)+2)&
M?W@&W@U^FW_!*K2_B[X,_P""?WPF^#GQU^!FO> ?%/P^^'VB^%M7TK7;RPN/
MM$UAI\%LUS!)97,Z-"YC)7<5?J"@[@'T+1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%9OB_0]3\2^&KW0M&\8ZEX?NKJ$I!K6D
M16SW-FW]^-;J&:$M_P!=(W7GI7\X_P#P4U_X+9?\%D?V&_\ @J3XS_80\$?M
MV2:KX?T+Q+I5IIFKZK\-?#AO#:W]I:72>;Y=@J-(BW00LJJ&*9VKG  /Z2J*
M_(O_ (*^?$+_ (+J_P#!*;]GB7]LOX9?\%#] ^+/@S0]4M+?Q9H7BOX/:1IU
MSI\=Q,D$,XDLU43Q--)%&P'ENID4C<"VWW__ (('?\%HK3_@L)\ /$&J^-?
M]CX9^(_@&\M;7QEI6DNYL;F.Y61K:]MA(S/&DAAG4Q,SE&B/S,&6@#[UHK\<
MX/VDO^#@YO\ @X>;X0R?#KQ1_P ,]#Q>;?R3X.3_ (1K_A%?+R+W^TO)_P"/
MO;^\QYWF>?\ N=NW]W7[&4 %%%!( R30 45\W?L1?\%)_A%^WM\<?C9\.O@4
MT&I>'/@]K^G:&/%=K=>9#K-[+%,]TT.!@PQ/&(E<$B0J[*2A0GZ1H **** "
MBBOR$_X.B?\ @HC_ ,% O^"8S_"SXG_L>?M176@Z=XYN-3L-7\,:AX0T:_MH
M)+2.V>.>"2XLVG4N)I ZO(ZY";0G((!^O=%?/G_!*/X[_%#]I[_@G%\&_P!H
M'XU>(4U;Q7XM\#VFHZ]J4=E%;K<7+@[G$4*K&F<=%4#VKZ#H **** "BBB@
MHK"^)GA;Q/XV\!ZGX6\&?$S5/!VJWEOLL?$VBV=G<7-A(&!#I%>P30/G&TJ\
M;95CC:V&'X<?\&YG_!:W_@I=^WC_ ,%*-6_9L_:W^/UGXG\,:?X#U:_%C;^#
M]+L";NWN;6-)/,M;:.3 $C_+NP=W(.!0!^\E%%% !1110 4444 %%%% !17Y
MA_\ !R3^T_\ MW?\$Y?V7M/_ &P?V1OVRM;T5K[Q[9Z)?^#M6\'Z!?Z?#;SV
MEPX>WDET_P"THP>V!/FRR@^:V-H4"N7_ .#:3]L/_@H1_P %/OA!XO\ VE_V
ML_VU-:O;3PKXZCT33O"6A>"_#UC:WBI:P7,K74JZ<9V5OM"(!#)"RA6.XEAM
M /UDHHHH ***R_&N@:MXI\*7_AW0O&^I^&[R\MVCM]>T6&UDN[%CTEB6[@G@
M+#L)(G7U4T :E%?@5_P3U_X+,?\ !4GQQ_P<#1?\$U_CI^U/#XN\ Z-\3O&/
MAC4(Y/ NC64VHPZ5;:H()6DM;5'C8R6D4A",!P1T)%?OK0 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 5_(U_P<5WW]F?\'#_ ,4=2^R3W'V?Q+X1E\BU
MCWRR[="T@[47^)CC '<FOZY:_D@_X.%R&_X.,?B3@Y_XJSP?T_[ FD4 ?=O_
M  <E_P#!8WQ[\;/V78?V%M*_8I^+GPA\/?$37+"/Q)\1/CAX+GTBS,%M<Q7:
MPVJP"X:;][#$\C@[U2)E$3;]R_5?_!L+_P $W_@-^R!^R#XK^*/PJ_:X\+?%
M/Q+\49K:/Q)XG^'=^)K#15M8Y?(LH?.3S!/&;J61S/%&Q+Q@Q ("WOW_  <$
MZ3\&-6_X(Z?'C_A>,5B=/MO!,T^BR7H7,>M*R_V:8R>1(;LPJ,<D,1T)K\9/
M^#*J\^."_M\?$>P\+2:@? #?#%W\7IEOL8OQ>VXT\M_#Y^TW@3OY?G^AH ]8
M^%W_  5B_P""G_A+_@XKL_\ @G3XI_;3UOQ1\,[+XTSZ!)IVL>%]$2>[TX;V
M2.6:WL8FWA=H+IL)*YP,XKZ:_P"#EK_@NC\9?^"?FJ>%?V+OV+-0M+'XI^,]
M.74M7\37%G%<MH6GRS-!;I!'*&C-S-)'+\TBL(XX\A29%9/SGTXC_B,7;G_F
MXR7_ -%-5G_@ZO\ AGXK^&?_  6]\*?%[QG;2IX;\6:!X=O=(OY!^Y\NTF^S
MW,0;IN1H][+U G0_Q"@#[D_X+!?%3_@H)_P0;^%?P>_:T^$/[>'CSXJP:GXF
M3PY\3?"OQ9EM=1TW6KI[62Z66V$<$<M@K?9[E<1/D#RN3M??[/\ \%1/VEO&
M'[?/_!OMK'[<'[)O[0.L_#G0M7^'<VN:[INEV4<MYJ,:G[/<Z,]UN5K=$G6:
M*5XAND\LKD(S*WDG_![!JUK#_P $XOAEH3R@3W/QMM9XTSR4CT?5%8_@95_,
M5A?L\_"+QW\)O^#,SQ)HOCG3[BVO-7^&&OZ[:V<ZD-%97FJ37-LP!_AD@>.8
M>TM 'S7_ ,&E/[.'[4WQM^'/Q9U[]G_]O?Q!\(--T?Q9HPUS1=&\$Z5JJ:X3
M#.P,DE[&SPX563]V1D.3U K[<_X*D?\ !7/X_>+?^"JGPV_X(H_L.?$'_A"-
M6\0:YIT/Q4^)5I9PW.H:9;W$8NI+2P6='BCE6Q_>F5E8[I8U79L8MX7_ ,&2
M&L:1H7[/7[0VK:WJEM9VMKXHT26ZN;J=8XX4%K=99F8@*.#R>.*^)O\ @J G
M@W]F;_@Z$USQI^UII5\_@2]^)FC:KKD\5[<VS2:#>6ELDD\<MNZ2XBC>0'RV
M!W0,F>"* /TK^/G_  4-_:$_X(U?\%I?AI^Q_P#$C]HCQ5\3O@1\9]#TMROQ
M$NXKS5/"U]=7L]@9X;U8TD>%988I723<OES2!0&56/9?\%TO^"Q?QS^!O[6/
MPE_X)2_L+>+++P]\3OBOKND6?B'QW<V$5XWAJUU*^6SMHX(90T9N')>1F<'R
MXPA4;I0\?MOQ5_X))_\ !$31?#VB_M(_%?X&Z;JEG#/IX\,>)+WQQKFJ/<2W
M,\8L8K,B\D:=III8Q%'$&,C2#:#FOQ4_X.0=6^(G['O_  <5:=^UIJVD7$UI
M!>>#/&GA0,/DN(=-CM8GC0GC_CYT^8$9XW9/6@#[(_X*&_M-?\%4_P#@C9_P
M51^$W@OX(?&?XL_&_P"$OQ&TW3%N_#OQ BCU<ZG?-=R6U[8V]Q%;HT%P$$%P
MGE[=K7"AE>,%*I_\'P__ "1S]GO_ +&;Q!_Z3V5?LQX1_:H_9Z\;?LX67[7.
MA_%O1/\ A7%_X>76X_%MQ?I%9QV13<9)'8@1E>596PRNI4@,"*_&7_@^!FBN
M/@M^SQ<0ME)/$FOLAQC(-M9$4 >:?$/4_P#@KK\%?^#=WX8?MU_##]NA/AAX
M0\!^&=$L]!^&?@C1E%UJ.G3WD=DFHWNJ,^]KB269)!:K'Y*1;029-QK]*/\
M@W@_X*#?&G_@J'_P3*;XD_'GQ&1XW\/>)M1\(:UXGTJVA@FO)8K:VGBOA'L,
M23>5>19^0H7C+;,-M'R!^V(1_P 05WASG_FGO@O_ -2'3Z[K_@RG/_&KOX@C
M/_-?-3_],FB4 ?(_P,_X*W?\%L->_P""Y.K_ /!.3P!^V%;^,-.T[XL^*O".
MCV_CWPQI,-J]M9?;XH[V[:QLX99&@C@%R8HFC\YX1&&0/D/_ &M_^"D?_!6/
M_@CQ_P %H_#_ ,%?C+^W[JWQG\):G<Z+?Z]I^K>';?3K&^TR_D"3Q1V<9=+*
M6,K+Y;POU1"V5+QGRO\ 8-(_XC%M<Y_YN-^(_P#Z+UNC_@ZV(_X?I>&N>G@W
MPO\ ^E=Q0!^VW_!=W_@JY#_P27_8ME^+?A31K+5O'WBG4QHG@#2]0!:W%VT;
M227<ZJ0S0P1J6*@C<[Q)E0Y8?$&DZK_P4QG_ ."$[_\ !8T_\%,/B@?C&-(D
M\9C09%TT^%_[,2_,1L?[,^R>7@V@\W?VD(&-M97_  >]?"3QSXA_9^^!/QKT
MBRGE\/\ A?Q5K6EZW)&I*PSZA!:26S/CH,6$ZACQE@.K#/K9\2Z-;_\ !G9_
M:D5RGD']F_[&6SQYS/\ 9ROU\TD?6@#Z3_X(-_\ !6=?^"MO[&[_ !2\8Z!8
MZ-\0/"6J_P!B^/-+TW<+9Y_+62&\@5B62&9"2$8DJ\<JY(4,?Q/_ .#1G_E-
M3XH_[)MXB_\ 2ZRKZ\_X,@?A/XVT'X&?'OXU:K8SQZ!XF\3:%I.C2R*0DUQI
M\%[)<E,]<"_MP2.,C'4&OD/_ (-&2/\ A]3XGY_YIOXB_P#2ZRH ^[?^"H7_
M  63_:2^,?\ P5V\"?\ !&+]A;XMS_#W3[KQ?INB_$_XCZ-9P3:H99]DMS;6
M33(Z0""W)RX7>TX*Y54/F8__  4H_P""CG[7'_!OM_P4#^&F@WO[17C/XS_
MKXA: +OQ#X9^)=Q;7VKZ=)#<^3=2V5]'#%(&$;12I&Y,;,SH0 5=/C7PK\,_
M%?P(_P"#Q5='^)]M+;R:O^T%J&LZ;+<#"S6FJ1W%U9,AZ,-ES$G'1E*]017J
M'_![I=_VK^TQ\ _"FG1//>KX-U61;:%2SMYU["B *.22T3 #N10!]V?\'%O_
M  7&\:?\$XOV8_AZO[(%QIMWXR^,UM<7GAGQ7=VJW-MI6DPQ6[M>QQ2#9+-)
M]J@$0D#(!YC,K8"GPK]K3Q3_ ,%(_P!CG_@A7X _X*G_  \_X*4_%&[^*NJZ
M/X=\0>,8?$+:=J.C2VFMB+%M#I]S:/# T#7=N%=1SLDX^9=G3?\ !:?_ ()E
M? CQW_P1$^ @_:S^/EG\+_B!\#/AWH>AZ!K6K6<MVFJ:F^E6EO<:.T$ :>9Y
MI;1&5HE=HS"SE2GF5/\ &G]BK_@L5^VU_P $?/AA_P $H?%7[*?A?X>7VF:5
MX?TKQE\1?$/Q'M+FQ&F:2(_LXCM;,2W!N7\BW9P5V!D<!B'W( ==_P $A/'7
M_!3/_@I?_P $R_$W[2$__!6[6KSQEXEM);'PG;Q?!OP[I7_"&Z_9/+YD,TL<
M,J:C:S[[<L3%&ZQD%=CE@/E?_@@!_P %B?\ @HA^T3_P55G_ &-O^"CO[7/B
M-Y;;2]7M-*\)OX=T2Q2X\0V4BF6RNFAL5EPL$5ZP5)$)DA49(.#^P?\ P2^_
MX)\?#S_@F'^QIX9_9)^'WB"?6O[)::\UWQ!=0")]5U*=]\]QY8)$:YVHB98K
M'&@+,06/X,_\'.'[.'CW_@F?_P %=/!'_!2O]GJW_LVW\<ZG;>*+"YBC(AM_
M$NG21?:XG ZI.OV>9@3^\-Q<#& : /V5\>V?[6?Q$_X+#:9\)/A/^VAXQT;X
M7>%_AI%XL^)_A*TT?19H5O+F]EMM+T^*XEL'GA6X6UO)I 9&?9;?(R>8K#[4
MKY6_X)+IXF^*WP*UK]O+XC^%IM'\2_M$^(/^$Q72[MP\NEZ#Y$=KH=B6  (7
M3H()FP /-NYS_$2?JF@#\H/^#R7_ )1(:9_V6'1O_234*XC_ (,G/^4=_P 4
M?^RT3_\ IHTZNV_X/)B!_P $D-,R>OQAT;_TCU"N)_X,G"/^'>'Q1&?^:T3_
M /IITZ@#Y]_X+U_\%8O^"J/_  3U_P""I\G[._[-W[9VOR^$]6TS2M9T_P .
M:GX=T*3R&NY9%>R2=K#>(MT9"LY9U#<LQ&:O_P#!?G]I/_@MY_P3%\;_  F_
M:9U;_@HZK3_$"XOVF^'7@WPQ%::#X;N+06TGV)!,9#JD)6Y*F:X59&,9.U0R
MJGS]_P '6I'_  _3\-<]/!OA?/\ X%W%?5?_  ?%_P#)+OV=?^P_XD_]$:?0
M!^E]O_P5!\*>#O\ @CGI7_!5;XK^'8X87^$=AXHU'0K&4HDNI7$$2I8Q.V2J
MR7DJP(S9P'4G/-?G3_P18^)W_!5S_@M_-\4/VT/B%_P4F\7_  ITWPQXDCTG
MP'X5\ Z'8-HT-]Y0N'2YM+F-Q=6T4<MNNR1C++YC$RKM&=W]K3X>^+_B/_P9
MG^%K+P7:S7,VE?"KPIJU[;0 DO9VNHVDMPQ _ACC5ICZ"(GM5G_@R7\=>'M0
M_8)^+'PSMKZ)M5TGXO'4[RV##>EO=Z7910N1U 9[*< ^J-Z4 ?GK_P $EO\
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
MI_M.)=?$OPUK&DBPU^?Q6ENMUJ05@RSR-916\<<RLJ.LD*1E'167##-?&?\
MQ#K?#O\ X9M_X8//[?OQR/[/7]L_VC_PJ@W.C8S]I^U?9?[0_L_[5]E^T?O?
M)W;=WS??^>OT7HH \N^'G[(WPK^!/[+]G^R7^R]+?_"WPUI6E_8=#N_!JVQO
M-.4OO>:-[V&XCDF=BY>65)&9I&<G>0P^/_V)O^#:?]B__@GS^T-IW[3O[,O[
M07QJTOQ18Q2V\SW_ (@TB[M[ZUE(\ZVGCDTL[HY-HR05<$!E96 8?HC10!\J
M_P#!0?\ X) ?LK_\%#_&?A'XT^.+[Q'X+^)_@"Z@N/!GQ0\!:A'::OI[0S>?
M#&QECDCGC2;]XJNA*$ML9-[[N2\$?\$0_@IK'[8.C_MZ?ME_'/QK\?/B=X9M
M+>W\)WWCJ#3;33-$6!VD@>WT_3K6"'S$DDDD#/N42/Y@42 ./M>B@#\?_P#@
M[K^&_P //V@_@O\  []F[1_'^IQ_&+Q1\2/)^%'@>QLA)#XCGF\FSF2>5Y(X
M[0(]S;E9W8XW.H4AF>/X_MO^")G_  =@:'I%K-H_[>?B]/L=N$M-.M?VE=71
MH$P/W:@R"-0, 8#;>/2OW-_;C_X)Q_LE_P#!1'PMH?AW]ISX?3W]WX5U W_A
M'Q'H^K3Z?JNA71*$S6MU;LKQDF.,E3E"8T8J2BD<;9?\$Q_$-M8+H=W_ ,%-
M?VI;O3%3RS93_$+3TD:/^Z;N+34N\]MXG$G^UGF@#X"_X(1?\%6/VN?@W\,?
MVH/ G_!8[XDZE+I?[,]YIZ:OXRUW%_>Z?<S3W-M+ILEQ;!S?LTL,7DD%W)D(
MW,K(%]R_X*-7?[%O_!=_]@[X)>$_A#KEQXAL_BK\9M-7P7J<=M):7FEQ:?+.
MVNSRQ2*)(Q%IL&H1$'"M-+;88[XR?JR'_@EE^PU:?L?^+/V&=/\ @I##\/\
MQUYTWBZW.I7$U_JU[+(DK:A<WTKO<3W?FQQR">1V8-&G90*Y+_@G%_P1G_9#
M_P""89GNO@3JOCC7[S[-<6FE7OCWQ.=0.BVMQ+'-<V]C$D<4%JDTL43RE(P\
MK1)O9MH  /J?0M#T?PQHEGX;\/:;#9:?I]K';6-G;QA8X(8U")&JC@*J@ #L
M!5JBB@#Y*_X*._\ !(+X2_\ !4G0[7P)^TW^TI\6H_"%AK":KIW@SPQJ.CV5
MA;WB0M"LNXZ8]Q*0LDF!+,X4R-M R,9?_!.7_@BI\$_^"6DFHZ;^RG^TU\8(
M/#^M:G%?Z[X2\0:IHU]I^H3QIL#MNTL30DIA6:&2-F"KDG:N/LFB@#\[OVT_
M^#:;]BW]OW]H_5/VJ/VC_C_\:K_Q7J)B2%].\0Z3:V^GV\6?(MK>--,^2.,'
M"EBSGEG=V+,>S_X*!?\ !"+]GG_@IS!X)M?VN_VF/C+K<7@+2Y+31([#5M%L
MUDEE$8N+R81:6 \\HABW$80>6-B)EMWV]10!XM^R'^PU\-?V0/V5[3]C72/&
MWB7QSX%T_3YM-T_3_B$;"[>#394*O8$V]I )H,,_$RR-B0KNV!57XR^''_!K
M5^QY\#_CSK7Q2_9Z_:D^._P]\+^)D:'Q)\//!GCTV%GJ%F7W'3Y+F*,7+6AY
M!1I&DP3B4$Y'Z;44 ?FY\(/^#6K_ ()N?!O]IR__ &K?#'B+XFVFOR>+KS7-
M!TW0/&']BV/A_P Z>21+6R_L^*&XBAC23R5!F)*#!X)%?2?_  4C_P""5?[(
MO_!4_P"#UA\(_P!J#PSJ#/HD[S^&/%&AWH@U71I755D:&:19%97"J'CE5T?8
MC%=R(R_2%% 'YL_L)?\ !L/^Q;^Q5X[T_P :ZQ\9/B7\2K31-7CU30?!_B_6
MHUT"UOHV#17CV%O&B7$Z,H96D)4, VS<JD?2?[=?_!-/PQ_P4!;2]+^*O[5'
MQ=\/>'='U:SU6S\(^"M5TJSTY[ZUD66&>82Z=++<[9$201S2/$&4$("*^DZ*
M /AC_@H=_P $"?V7?^"H?C'PUXW_ &MOCW\6-2O/">BC3=&71[[1+%45A'YT
MK^5I6YWE>,2,"VQ69A&D:G;7T#^PK^Q7X:_8%^!&G?LX?#_XT^/?%WA?0XUA
M\.6_C[4+*[FTBV!)%M#-;VD#M$"WRK*9-@ 5"J@+7LU% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !15>WU?2;O4;C2+74[>
M6[LU1KNUCG5I( X)0NH.5#;6QGK@XZ58H **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KYK_P""PGQP_:!_9M_X
M)E_&/XX_LMV4DOCKP[X2:XT6:&T$[V2F:)+B\5""&:WMWFN!N!7,.6!&17TI
M6-X[\;>#/ &@QZUX]U>"RT^[U2PTI);E"R275]=PV5K#@ \R7%Q#$,\9D&2!
MDT ?ES^R1\%?@'^W5\-OB9\;_P#@GY^TEX\'C%? 'A:]\(_$.V^*.J/JA\0"
MSO));75S+<LLY>=!%<6]PC(BN3&J (1]J_MF_L6>,_VX_%=A\.?'GQZ\:^"_
MA1IFD?:-1TCX<>(VTK4/$VJ2R.OE7=U&/-2SMXHU80QE1-)<Y<X@56_-;]NO
M]CWQU_P2W_:%^.?_  4O_P""5/C.S^&\7PRT_P .ZS\0O@\8V_X1KQ?87C3_
M &I3!N"V\BE0R+&%"AG\KRG/S_J_KO[5_@WPE^SIX9^/GB;P_J27/B_2M/D\
M.>#;.,2ZKJ>HWENLT.F6\9*B2X.6!)*I&L<DLC1QQNZ@'PQ_P34\'?M!_L&?
M\%B?B7_P3#M?V@/&7Q)^"T_P9MOB'X2?QYJ[ZC?^%+B34DLA8"Y?DI(?M+B/
M !6.-@NX2L_G_P#P4J_;T_8;_:(_X*.W_P"PS^TS_P %,?C'^SEH_P .K&TM
M-&U3X6>(9M!@\0Z[>9DO/MVH_99HEM[:);6&/S-B+*]WN<;5S^@'[)G[/,GP
M2\2>*/V@?C_KFD2?%[XT:U;R^))8+L&"TCMK>3[!H%@SA6EAM+9)CN"AIY#<
MW!5 ^Q.\_:6_9:_9^_;"^$^I_!']I/X5:/XM\-ZK;O%-8ZM:+(869<":&3[\
M$R]5EC*NI (((H ^7?VD/B%X>_X(?_\ !'CQU\7_  !\:/'/Q5N_#6F/=^&?
M%/Q6\7MKVHZKJ>I7,=O9&6X"HLEO&\\)"1JB^3$3]YF<^/?M5?#?XP?L)?\
M!)K1/^"D'@'XJ^*]6^/?@/1]!\7^/=>UWQ/>3P^,1<36W]K:9>VS2& 61CN9
MO)B2-?LWD0^3Y94D_-GQW_9I^-VK_P#!J5\4O@S;:_J/BK3?A?\ $75V^'VJ
M7),DVJ>$-'\3F..Z!'6);>*YF0_=\F)-OR!:^S/^"S_Q@\*ZW_P;N>._B9H-
MTEQ8>,/A7H":"+?YS='4I[".W6,#ERWGJ0!VY[4 ?<GP8^*?AOXY_![PI\;/
M!K.='\8^&K#7-*,F-QMKNW2>+..,[)%KI:\F_8*^%'B3X#_L,_!CX'^,86CU
M?P;\*/#NAZK&YY2YM--MX)5_!XV%>LT %%%% !17C7[*7C3Q#\>OAWJ'C3X@
M7Q>^M_$^H:?&;+,*>3#+M0;5XSCJ>]>F_P#"#Z1_S\WO_@6U &Q16/\ \(/I
M'_/S>_\ @6U'_"#Z1_S\WO\ X%M0!L45C_\ "#Z1_P _-[_X%M1_P@^D?\_-
M[_X%M0!L45C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;4 ;%%8__  @^D?\
M/S>_^!;4?\(/I'_/S>_^!;4 ;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@
M6U &Q16/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U &Q16/\ \(/I'_/S>_\
M@6U'_"#Z1_S\WO\ X%M0!L45C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L
M45C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4
M?\(/I'_/S>_^!;4 ;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q16/
M_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U &Q17+:QX;L;"_T^V@N;K;<W!23=
M=-G&,\<UH_\ "#Z1_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_
M (%M0!L45C_\(/I'_/S>_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-
M[_X%M1_P@^D?\_-[_P"!;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6
MU &Q16/_ ,(/I'_/S>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;
M4?\ "#Z1_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L4
M5C_\(/I'_/S>_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P
M@^D?\_-[_P"!;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_
M ,(/I'_/S>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1
M_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U9WAOPW8ZM8/<W5S=!EN)$&RZ8# .
M!WH ZFBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**Q_\ A!](_P"?F]_\
M"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**
MQ_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0
M?2/^?F]_\"VH V**Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!
M](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**Q_\ A!](_P"?F]_\"VH_X0?2/^?F
M]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**Q_\ A!](_P"?
MF]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH
M V**Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"V
MK.MO#=C+XDN=):YNO*BMT=2+ILY)Y[T =316/_P@^D?\_-[_ .!;4?\ "#Z1
M_P _-[_X%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'
M_/S>_P#@6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?\_-[
M_P"!;4 ;%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/I'_/
MS>_^!;4?\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X
M%M0!L45C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M0!L45C_\(/I'_/S>_P#@
M6U'_  @^D?\ /S>_^!;4 ;%%8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!;4 ;
M%%8__"#Z1_S\WO\ X%M1_P (/I'_ #\WO_@6U &Q16/_ ,(/I'_/S>_^!;4?
M\(/I'_/S>_\ @6U &Q16/_P@^D?\_-[_ .!;52\0>%M/TS1;G4+:YN_,BC++
MNNF(S^= '2T5AVG@S2I[6*9[F\R\:L<7;=2*D_X0?2/^?F]_\"VH V**Q_\
MA!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0?2/^
M?F]_\"VH V**Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y
M^;W_ ,"VH_X0?2/^?F]_\"VH V**Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\
M MJ -BBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**Q_\ A!](_P"?F]_\
M"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**
MQ_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VH_X0
M?2/^?F]_\"VH V**Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!
M](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**P9+)/#.IV,>G32L+R?RYA/*7^4#/
M&>E;U !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7"_M*
M?LY?"G]K3X*ZU^S_ /&O2;V\\-ZZ;9[R/3=6N+"XCEMKF*ZMYHKBV=)8I(YX
M(9%96',8SD9![JB@#Y!M/^"1G@GQ=\1]?O\ ]I/]H'XA?%/P1J3:'-;^"/&.
MM6[6M[-IOFM#_:9M;:"34HXY&1TBN'D1F7,JRD*1M?MN?\$COV:OV_?B;H?Q
M5^.OC[XG6U]X:TY[/P_9^$_']SI5K8+)_K7CB@P!)(,!WSN9412=J@#ZDHH
M^2?V1_\ @BU^QW^QI\=;/]HOX=ZU\1=>\3:;I=U8Z5/X[\?W>L16"W 599(8
MYR1'(44Q[QSMD<=ZD\(_\$=?V=? _P 2O&/C7PU\;/C;::#X]UZZUCQ/\.;;
MXM:A#X?NKNY<R3L((F655D9CO03!74[&!3"5]944 96G^!/!&D^"(?AGI?@_
M2[;PY;Z6NF6^@06$:64=DL?E"V6$#8(A'\GE@;=O&,5X%X*_X)8_LT^#5\)>
M&)=7\7ZUX%^'NMKK'P]^&&OZ^+G0?#MZC,T$L,7EB:<0%V,$5U-/%;_*8DC*
M(5^DJ* "BBB@ HHHH \%_P""=7_)#]7_ .Q[UC_T?7O5>"_\$ZO^2'ZO_P!C
MWK'_ */KWJ@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@#'\2_\A?1_P#K]/\ Z":V*Q_$O_(7T?\ Z_3_ .@FMB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ K'\#_P#((E_Z_9O_ $*MBL?P/_R")?\ K]F_]"H V**** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Q[+_D=[W_K
MRB_F:V*Q[+_D=[W_ *\HOYF@#8HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ K-\8_\BQ>_]<#6E6;XQ_Y%B]_ZX&@"
MYIW_ "#X/^N*_P A4U0Z=_R#X/\ KBO\A4U !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% &/XE_P"0OH__ %^G_P!!
M-;%8_B7_ )"^C_\ 7Z?_ $$UL4 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 >"_\ !.K_ )(?
MJ_\ V/>L?^CZ]ZKP7_@G5_R0_5_^Q[UC_P!'U[U0 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!C^)?^0OH_\ U^G_
M -!-;%8_B7_D+Z/_ -?I_P#036Q0 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 5C^!_\ D$2_]?LW_H5;%8_@?_D$
M2_\ 7[-_Z%0!L4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 5CV7_([WO\ UY1?S-;%8]E_R.][_P!>47\S0!L4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5
MF^,?^18O?^N!K2K-\8_\BQ>_]<#0!<T[_D'P?]<5_D*FJ'3O^0?!_P!<5_D*
MFH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@#SK]K+X_?\ #+W[/^O_ !T_X1/^W/[#^R_\2O[?]F\_SKN&W_UOER;<>;N^
MZ<[<<9R/B[_A_P ?]6G?^7W_ /<-?1?_  5D_P"4?WC_ /[A7_IULZ_%ZOZ2
M\'> .$N*N&:V+S3#>TJ1K2@GSU(^ZH4VE:$HK>3UM?7?8_F/QH\0^,.$N*:.
M#RK$^SIRHQFUR4Y>\YU$W><)/:*5KVTVW/T*U/\ X+Q?VC=V=U_PRML^R3&3
M;_PG.=_&,?\ 'CQ5S_A_Q_U:=_Y??_W#7YTT5^L?\0;\-_\ H!_\JUO_ )8?
MD7_$:O$W_H/_ /*5'_Y6?O/^R;\?O^&H?V?] ^.G_")_V'_;GVK_ (E?V_[3
MY'DW<UO_ *WRX]V?*W?=&-V.<9/HM?.G_!)O_E']X _[BO\ Z=;ROHNOXRXI
MP6&R[B;'83#QY:=.M5A%7;M&,Y)*[;;LDM6V^[/[:X4QN*S+A; 8S$RYJE2C
M2G)V2O*4(N3LDDKMMV22[(****\(]\**** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** /!?\ @G5_R0_5_P#L>]8_
M]'U[U7@O_!.K_DA^K_\ 8]ZQ_P"CZ]ZH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH Q_$O_(7T?\ Z_3_ .@FMBL?
MQ+_R%]'_ .OT_P#H)K8H **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH *Q_ _\ R")?^OV;_P!"K8K'\#_\@B7_ *_9
MO_0J -BBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "L>R_Y'>]_Z\HOYFMBL>R_Y'>]_P"O*+^9H V**** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *S?&/_(L7
MO_7 UI5F^,?^18O?^N!H N:=_P @^#_KBO\ (5-4.G?\@^#_ *XK_(5-0 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445YM\:/VO?V;_
M -GX-;_%+XL:78WP'R:/!*;F^<GH!;PAI.3P"5 ]ZZL'@<;F-=4,+2E4F]HQ
M3D_N5V<F-Q^!RW#NOBZL:<%O*4E%?>VD>DT$A068@ #DFOFO_AJ?]K3XX_N/
MV7?V4[C1]-EXB\8?%6<Z?!CLZ6<9,\JGJ&!QTR.:4?L)?$#XP,+W]L;]I[Q)
MXOADYE\)^'&_L?1@/^>;I"=\X'9R5;UKZ#_5JE@=<UQ4*/\ <C^]J_\ @$'R
MQ?E4G!GSW^L]7':93A)U_P"_)>RI?^!S7-)>=.%1'"_\%6_VKOV=]2_97\7?
M W0_BOI6I^*=3:P6#2M*F-T8S%J%M-)YKQ!DA(2-N'8$G  YK\H*_77_ (*'
M_ CX-_ [_@G3X_T;X2?#31] A*Z2LK:=9*DLP&JV?^LD^_(?=F)K\BJ_JGP.
M>5OA.NL I\BKRNYN-Y/V=+6T5:*M9<MY6LWS.]E_)?CRLU7%]!Y@X<[H1LJ:
ME:*]I5TO)WD[W?-:"::7*K791117[*?B9^T/_!)O_E']X _[BO\ Z=;ROHNO
MG3_@DW_RC^\ ?]Q7_P!.MY7T77^=W&W_ "6>9?\ 816_].2/](N!?^2)RO\
M[!Z'_IJ(4445\P?5!1110 4444 %%%% !1110 4444 %%%% !1110 445XG_
M ,%&?VRM'_X)]?L2?$/]L36O"<VNIX)T5;BVT:&;R_MEU-/%;6\3/@^6AFFC
M#N 2J;B <8(![917YY6WQD_X*B^'[3XF_'?P7\>OAU\0+KPKX%\-^*+CX?1^
M"KF+1]2M+BTN;JXM]*N([YYX)?*C/E2R>>)V5-T:;LK]!_MF^,/V^?$_BNP^
M ?[ %EX*T'5GTC^UO%?Q(^(]G<W.GZ/;/(\5M:VEK!@W=Y,\4['<PC@CARX9
MIHA0!]%45\!?\$X/V_?VXKC]O#Q]_P $K_\ @I5X1\(S?$3POX,C\9>$/'W@
M""6#3?$FA-<16[.\,I)CE6695R H)CE4K^[#R=A\,_VN_P!HG]OK]I+XT?#?
M]D3XD^'O _@;X'Z^/"<_BO4_"_\ ;$_B3Q4D9DNX=AGB6"QM28XG"_OIG<E)
M8E4;@#[-HKXQ^ __  6(^&GB7_@G1\1_VU_C_P"'8_#>M_ _4M8\/?%WPGIM
MP91:>(=-D$,EI:M)@LMQ(\'D[^GVA48Y5C7$_$;]NW]N3]ES]A_PC_P5+_:*
MG\+ZAX,U(Z-JOQ'^$^A^&Y([CPOX?U26&.*6SOC,9+J]M/M-NTXD0138F"+
M K4 ?H)1570M<T?Q/HEGXE\/:E#>:?J%K'<V-Y;N&CGAD4.DBD=592"#W!JU
M0 4444 >"_\ !.K_ )(?J_\ V/>L?^CZ]ZKP7_@G5_R0_5_^Q[UC_P!'U[U0
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110!C^)?^0OH_\ U^G_ -!-;%8_B7_D+Z/_ -?I_P#036Q0 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5C^!_\
MD$2_]?LW_H5<S\1?VH_V?OA/J#Z1X]^*FF6=Y&<2V43-<31'T>.%79/Q K,^
M!_[2GP)^(ZG0?!_Q.TRYOY;N1H;&5V@GE!.1LCE"L_'H#7C?ZQ\/?7OJ7URE
M[:]N3VD.>_;EO>_R.7Z]@O;>R]K'F[<RO]U[GJ-%%%>R=04444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6/9?\CO>_\ 7E%_
M,UL5CV7_ ".][_UY1?S- &Q1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !6;XQ_Y%B]_P"N!K2K-\8_\BQ>_P#7 T 7
M-._Y!\'_ %Q7^0J:H=._Y!\'_7%?Y"IJ "BBB@ HHHH **** "BBB@ HHHH
M**** "BBLOQ?XV\&_#_1)?$OCOQ9INBZ=#_K;[5;Z.WA3ZNY _6KITZE6:A!
M-M[):M^B(J5*=&#G-I):MO1+U9J45\Z:O_P49\#>*]2F\,?LL?"KQ5\5]5B?
MRWF\/Z>UOID+^DU[. B#I\P5E/K5;_A6?_!0OX]_/\3_ (QZ)\)M$E^]H?@.
MW^VZHR?W)+V7Y8G']^'(XZ5]+'A3'8>*GF52&%C_ -/6U/Y4HJ57T;@H^:/E
MY<78#$2<,LISQ<N]))P^=63C2]4IN7]UGM7Q3^.7P>^".D_VW\6OB3H^@0%2
MT0U*]5))L=HX\[Y#[*":\6;]O'QS\7F-C^QQ^S)XE\9Q.=L?BO7T_L?1@/[Z
M2S@/,!U*!5;IBNJ^%G_!/[]F'X7ZM_PEDO@=_%/B)V#S^)?&MTVJ7LKCH^9L
MHC?[2(IKVA55%"(H  P !P!5?6>%<M_@49XJ:^U4?LZ?_@N$G-^3=6/G'H+Z
MMQ;F?\>M#"P?V:2]I4_\&5(J"\TJ4K=)=3YM_P"&7?VNOCE_I'[3W[54VAZ;
M+S)X/^%$!L8<'JCWLH,TBD<%2,=<'FO2/@O^Q]^S;^S^5NOAA\)],L]0'+ZS
M=1FYOG8]2;B8M(,GD@$#VKTNBN3&<3YSC*#PZJ>SHO\ Y=TTJ<'ZQ@ES/SES
M/S.O!<+9+@L0L2Z;J5E_R\JMU)KTE-OE7E#E7D%%%%> ?0A1110!C^)?^0OH
M_P#U^G_T$UL5C^)?^0OH_P#U^G_T$UL4 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %<K\</@G\+_ -I#X0^(O@/\:O"5OKOA3Q7I4NG:
M[I-T6"W$$@P0&4AD8<,KJ0RLJLI! -=57E_[97P5^)_[0/[/FJ?#?X*_%BW\
M#^+1J^CZOX<\3WFD&_@M+S3=5M-1C66W$L1EBD:T$3KO'R2L<-C:0#\C/!^J
M?M7_ /!MS^T-X^_X1Y=<^./[)6CCP]!XMN=2F#^)/ -E=&X6R,)W!9[:$M(A
M 58V+J,6Y(9OVD7XI?#H?#!?C3<>,M/M_"9T(:TWB"[N!#:QZ>8?/^TN[X"1
M^5\Y9L8')Q7PM\6OV)OV_/VV-9^+?[/_ .T++\/O 7@GXC:7X9L/''B[P;>W
MVHW6KV%IY[W%KID-U;PI:22Y$;RRO/Y*R?*LK$,O8?M]?L0_\%!_C7J/P_\
MA]^Q?\>?A=X"^%_@"VLY(/"7BWPO=ZI_:MY:@+:_:E#A)+>VV1/%"<KYJ"5]
M[)%Y8!U'[&'P'UGXG?M:_$'_ (*E_%#PS=:1J7CKPY9>$/A=H>I6S0WFE^#K
M25KA9[E& :*>_NG:[,#@/#$+='"R"51\Y_\ !J]9ZAIO[*'Q]TSQ,&'B&W_:
MQ\61^(EF&)1=BVTT/OSSG(/XY]Z]\_97_9W_ ."O>E_'W1_&W[;_ .W3X$\3
M^!]$M;J9/"?P\\$/I3ZE?O$883=2N2SP1K)+)Y8(!D6)B#L&+^A_L1_'?]EC
M]H[XL?&[]AS6?!']D_&V\AUGQ5X2\=/>0V^B^)$0QRZQ:-:(YN%N%*M/:/Y1
M>2(,MQ&&*@ _%_\ :ML/&^L?L!?\%5-?\*QSOX;;]L2S6X: $QN8O$)^TGC@
M_O'LV)_W2:_6'_@M9?>&;'_@@!\5KBU>+^S6^$VG1V!&-I#R6B08_%DQ^%>I
M? 3_ ()4_L_?";]@GQ/^P=XYN+GQCIOQ%&K7?Q0\27L*V]WXCU;4R6O-1*ID
M02;MGE!23$L$(W,R;CYIXC_X)D_M*_';]E3P5_P3E_:@^,'A75O@WX1N-)@\
M0:]I$5TNO^.=(TJ6.2PTZZ@=1#8$FWMOM%Q'-.TWDML2 R$J >]?\$RK#Q'I
M7_!-W]GW3/&"R+JUO\$?"D6IK-G>+A=(M1(&SSNW Y]\U[?4=K:VMC:QV5E;
M1PPPQA(88D"JB@8"@#@ #@ 5)0 4444 ?.O_  3^UB_L/@OJT-MH-Q=*?'&K
MGS(B, ^?TY_SS7N7_"2ZO_T*%[_WTM>._P#!.K_DA^K_ /8]ZQ_Z/KWJ@#'_
M .$EU?\ Z%"]_P"^EH_X275_^A0O?^^EK8HH Q_^$EU?_H4+W_OI:/\ A)=7
M_P"A0O?^^EK8HH Q_P#A)=7_ .A0O?\ OI:/^$EU?_H4+W_OI:V** ,?_A)=
M7_Z%"]_[Z6C_ (275_\ H4+W_OI:V** ,?\ X275_P#H4+W_ +Z6C_A)=7_Z
M%"]_[Z6MBB@#'_X275_^A0O?^^EH_P"$EU?_ *%"]_[Z6MBB@#'_ .$EU?\
MZ%"]_P"^EH_X275_^A0O?^^EK8HH Q_^$EU?_H4+W_OI:/\ A)=7_P"A0O?^
M^EK8HH Q_P#A)=7_ .A0O?\ OI:/^$EU?_H4+W_OI:V** ,?_A)=7_Z%"]_[
MZ6C_ (275_\ H4+W_OI:V** ,?\ X275_P#H4+W_ +Z6C_A)=7_Z%"]_[Z6M
MBB@#'_X275_^A0O?^^EH_P"$EU?_ *%"]_[Z6MBB@#E-<US49]1TV23PW<QF
M.Y+(C,N9#MZ"M/\ X275_P#H4+W_ +Z6CQ+_ ,A?1_\ K]/_ *":V* ,?_A)
M=7_Z%"]_[Z6C_A)=7_Z%"]_[Z6MBB@#'_P"$EU?_ *%"]_[Z6C_A)=7_ .A0
MO?\ OI:V** ,?_A)=7_Z%"]_[Z6C_A)=7_Z%"]_[Z6MBB@#'_P"$EU?_ *%"
M]_[Z6C_A)=7_ .A0O?\ OI:V** ,?_A)=7_Z%"]_[Z6C_A)=7_Z%"]_[Z6MB
MB@#'_P"$EU?_ *%"]_[Z6C_A)=7_ .A0O?\ OI:V** ,?_A)=7_Z%"]_[Z6C
M_A)=7_Z%"]_[Z6MBB@#'_P"$EU?_ *%"]_[Z6C_A)=7_ .A0O?\ OI:V** ,
M?_A)=7_Z%"]_[Z6C_A)=7_Z%"]_[Z6MBB@#'_P"$EU?_ *%"]_[Z6C_A)=7_
M .A0O?\ OI:V** ,?_A)=7_Z%"]_[Z6C_A)=7_Z%"]_[Z6MBB@#'_P"$EU?_
M *%"]_[Z6OFG_@H+^U]XJ^&>C6_PF\")<:3K6KVQGO[\2 2VMH25 C(^Z[E6
M&[JH4XY8$?5U?FC_ ,%(?[1_X:TU[[;N\K[%8_9-V<>7]FCSCVW[_P!:_(?&
M[B',>'>!I3P4G&=:<:7,M'&,E*3:?1M1Y;]+Z:V/F>+,;7P64-TG9R:C?LG=
MO\K?,\*DDDFD:65RS,269CDDGJ2:(Y)(9%EB<JRD%64X((Z$&DHK^"KN]S\=
M/O;_ ()]?M?>*OB9HUQ\)O'<=QJVM:1;">QOS(#+=6@(4B0G[SH64;NK!AGE
M23]+?\)+J_\ T*%[_P!]+7YT_P#!-[^T?^&M-!^Q;O*^Q7WVO&<>7]FDQGVW
M[/TK]+J_O7P1XAS'B'@:$\;)RG1G*ES/5RC%1DFWU:4N6^[MKK<_8N$\;7QN
M4)U7=Q;C?NDDU^=OD8__  DNK_\ 0H7O_?2T?\)+J_\ T*%[_P!]+6Q17Z\?
M3&/_ ,)+J_\ T*%[_P!]+1_PDNK_ /0H7O\ WTM;%% &/_PDNK_]"A>_]]+1
M_P )+J__ $*%[_WTM;%% &/_ ,)+J_\ T*%[_P!]+1_PDNK_ /0H7O\ WTM;
M%% &/_PDNK_]"A>_]]+1_P )+J__ $*%[_WTM;%% &/_ ,)+J_\ T*%[_P!]
M+1_PDNK_ /0H7O\ WTM;%% &/_PDNK_]"A>_]]+1_P )+J__ $*%[_WTM;%%
M &/_ ,)+J_\ T*%[_P!]+1_PDNK_ /0H7O\ WTM;%% &/_PDNK_]"A>_]]+1
M_P )+J__ $*%[_WTM;%% &/_ ,)+J_\ T*%[_P!]+1_PDNK_ /0H7O\ WTM;
M%% &/_PDNK_]"A>_]]+1_P )+J__ $*%[_WTM;%% &/_ ,)+J_\ T*%[_P!]
M+69:ZYJ*^*;JZ7PW<L[VT:M &7<H!/)KJZQ[+_D=[W_KRB_F: #_ (275_\
MH4+W_OI:/^$EU?\ Z%"]_P"^EK8HH Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI
M:V** ,?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EK8HH Q_^$EU?_H4+W_O
MI:/^$EU?_H4+W_OI:V** ,?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EK8H
MH Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI:V** ,?_ (275_\ H4+W_OI:/^$E
MU?\ Z%"]_P"^EK8HH Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI:V** ,?_ (27
M5_\ H4+W_OI:/^$EU?\ Z%"]_P"^EK8HH Q_^$EU?_H4+W_OI:/^$EU?_H4+
MW_OI:V** ,?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EK8HH Q_^$EU?_H4
M+W_OI:/^$EU?_H4+W_OI:V** ,?_ (275_\ H4+W_OI:H^)=>U.YT&Z@F\,7
M4*M$0979<+[FNFK-\8_\BQ>_]<#0!4LO$>JI9Q(OA*\8")0&#+@\=:E_X275
M_P#H4+W_ +Z6M+3O^0?!_P!<5_D*FH Q_P#A)=7_ .A0O?\ OI:/^$EU?_H4
M+W_OI:V** ,?_A)=7_Z%"]_[Z6C_ (275_\ H4+W_OI:V** ,?\ X275_P#H
M4+W_ +Z6C_A)=7_Z%"]_[Z6MBB@#'_X275_^A0O?^^EH_P"$EU?_ *%"]_[Z
M6MBB@#'_ .$EU?\ Z%"]_P"^EH_X275_^A0O?^^EKS?XN_MX?LO_  ;U'_A'
M-:^)$.KZ\S^7#X;\+Q-J-]))_P \_+AR$;VD*UQ?_"Z/V]_CS^Z^"O[/NG?#
M;1ION^(_B;<%[XH?XDL(<M&X["4LI]:^BPW"V<5J*Q%:*HTGM.JU3BU_=YO>
MG_VY&3\CYO%<69-0KO#T).O56\*2=22?:7+[L/6<HKS/=K[QI<Z79RZCJ?AR
M>WMX$+S3SS(B1J.K,Q. /<UXIXL_X*6_ W3M=?P5\--&UOXA>(@#LT7P'9_V
MBV>F6EC_ '07/4AB1SQ45C_P3OT?Q_>1:]^US\;_ !7\4KQ'$@TR^NSI^CQ/
MUS'96Q 7G_:(.!D5[IX%^'/@#X8:&GAKX<>"M*T+3TQBSTFPCMXR?4A ,GW/
M)KH]GPGEOQSGBI]H_NJ7_@4DZDEY<E-^9S^UXOS/X(0PD'UE^]J_^ Q:IQ?G
MSU5Y'SM?>*/^"E'QT/EZ-X1T3X-Z'-_R\7"IK6M;#W"DK F1V8!E)Z\5:\(?
ML#_"&'6XO&OQNT+Q7\4O$*<_VGX]U;[7%&>ZQVV1$J=,*RMCUKZ9HJ*G%F9T
MX.G@%'"P>EJ*Y9-=G4;=62\I3:\BZ?".5U)JKF#EBIK6]9\T4^ZII*E%^<8)
M^9SVD7H\/Z;#HV@_#N2QL[=-EO:6<4<442^BJN H]@*L_P#"2ZO_ -"A>_\
M?2UL45\S*4I2;D[MGU$8QA%1BK)&/_PDNK_]"A>_]]+1_P )+J__ $*%[_WT
MM;%%(9C_ /"2ZO\ ]"A>_P#?2T?\)+J__0H7O_?2UL44 8__  DNK_\ 0H7O
M_?2T?\)+J_\ T*%[_P!]+6Q10!C_ /"2ZO\ ]"A>_P#?2T?\)+J__0H7O_?2
MUL44 <U?ZI>:CK.EK=:-/:;+SY3,0=WRGIBNEK'\2_\ (7T?_K]/_H)K8H *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH \%_X)U?\ )#]7_P"Q[UC_ -'U[U7@O_!.K_DA^K_]
MCWK'_H^O>J "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** ,?Q+_ ,A?1_\ K]/_ *":V*Q_$O\ R%]'_P"OT_\ H)K8
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **KZMK&DZ!
MITNKZ[JEM96D"[I[J[G6..-?5F8@ ?6O(-:_;,\.:]J<OA?]GGP)J_Q$U6-M
MCR:1'Y.GP-_TUNY!L4>X!!]:\C-,]RC)N58NJHRE\,5>4Y?X(13G)^48LYL1
MC,-A;>UE9O9;M^B6K^2/9Z\^^*?[47P5^$5U_8WB3Q:MUK#MLAT#1XS=WTK]
MD\J/)4GMO*@^M<?_ ,*8_:7^,_[[XZ_&%?#&DR?>\+> B8G9?[LMX^7/'#*N
M5/.,5Z#\+?@'\(/@Q:^1\.? MEI\K+B:^V&2YF]=\SY=O7&<>@%>1_:'$^;:
M8'#K#TW_ ,O*^L_6-&#_ /3E2#76#.7V^88G^%#DCWGO\HI_FUZ'GW_"8?M@
M_&SY/ W@RR^&>AR]-7\3(+K5'3^\EJ/DB/\ LR?@:\A_:[_8!\5W/@I/B3X.
M\9^(/&7B:S+-KG]KW EGO(,#'V= /D\LY(B&<AC@Y !^SZ_,;_@H7_P4+_;!
M^!O[8/B_X6_"WXO?V7H.E_V?]AL?[ T^?RO,T^VF?YYK=W;,DCMRQQG P !7
MLY-X$KQ9=?**^)E5K.FY^TJS<5"THJ].%.#IQDG)?8NXW4I/K\3Q]G&1<)Y&
ML9G'M:L:DU33ARMQDXRDFHN4(I6B]=7LG=7/%9(Y(9&BE0JRDAE88((Z@BB.
M.2:18HD+,Q 55&22>@ K@_B+^V%^T!\6-0?5_'OBK3+R\D.9;V+PGIEO-*?5
MY(;9&?\ $FCX<_M@?'_X3:@NK^ O%6F6=Y&<Q7LOA33+B>(^J236[LGX$5\/
M_P 4Z?%/Z_R_VK@O8W^*]?GM_@]CRW\O:?,_G[_B*'"WMK<E;D[\D+_=[6WX
MGZ*?\$POAGHW@GQCXGD\<P7.G>-XK*&.'0]1MFAEAT^0)(9U#<MO;8#@938
M?OU]EU^0'[.7[4_[97[5/[6/@W3KWXK6USXBM8;]]'NI-$LK;?Y5G/<?9Y&M
MX8RT;F+9AB5'F,>YS^HOP"^.&D_&_P (R:@;!],US2YS:>)-!N.)M.NUR&0@
M\[202K=Q[@@?;0\/L7X*8VCP7F,Z<IN#K4:E/FM5A*<U)2YHQ_?0<??BKIP<
M)1?Q0I_T!X;<79/Q+E$OJ,)PA"<HIS23DTHR?PRDKI35]=5JE;1=U1117KGZ
M4%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6/9?\
MCO>_]>47\S6Q6/9?\CO>_P#7E%_,T ;%%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %9OC'_D6+W_K@:TJS?&/_ "+%
M[_UP- %S3O\ D'P?]<5_D*FJ'3O^0?!_UQ7^0J:@ HHHH **YOXE?&'X5_!O
M1CX@^*GQ"TCP_:8.R75+](C*1V16.Z0^R@GVKQ*7]O\ UKXJRMIG['/[.7BG
MX@DL43Q)?0_V1HJGIN%Q< ,^.I0*I(Z'FO:R[A[.,TI.M0I/V:WG)J%->M2;
MC!>C=SQ,QXCR7*JJHXBLO:/:G%.=1^E."E-^JC8^D:\^^,W[57[/'[/L#/\
M%SXL:1I-P%W+IQG\Z\D';;;Q!I6'N%QSUKRW_AG+]M/XZ_O_ -HW]J!?".E3
M?ZSPG\)[<VS;3_"]_,#+G'#* 5/.*]!^#'[%O[,_P%G75/A_\*K :KNWR:]J
M@-Y?O(>2_GS%G4D\G85'M7H?V=PWEVN,Q3K2_DH+3T=6:27K"G47F>=_:7$V
M9:8+"JA!_;KO7U5&FVWZ3J4WY'GO_#7?[3'QM_T?]E#]D_48K"7B+QC\39#I
M=CCM(ELI,\Z'L5(/J*/^&(_C#\9O]*_; _:IU[7;67F7P?X+']CZ2!WBD*?O
M;E?=MK>]?2E%'^M$L'IE6'AA_P"\ESU?7VD[N+\Z:I^@?ZJQQNN;8B>)_NM\
ME+T]G"RDO*HZGJ<9\(OV=O@;\!M._LWX0?"[1]!4ILDGL[0?:)1_TTF;,DG_
M  )C79T45\YB<5BL;6=;$3<YO=R;;?JW=L^DPN$PN"H*CAZ<806T8I12]$K)
M!1116!T!1110 4444 %%%% !1110 4444 %%%% &/XE_Y"^C_P#7Z?\ T$UL
M5C^)?^0OH_\ U^G_ -!-;% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '@O\ P3J_Y(?J_P#V
M/>L?^CZ]ZKP7_@G5_P D/U?_ +'O6/\ T?7O5 !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &/XE_Y"^C_ /7Z?_03
M6Q6/XE_Y"^C_ /7Z?_036Q0 4444 %%%% !1110 4444 %%%% !1110 444D
MDD<,;2RN%502S,<  =231L M%>2^-?VROA/H>L-X/\ )?^.?$/(71_"-L;LJ
M>F9)5_=HH/4Y)7N*R/\ A&OVQOC;\_BWQ18_"_0Y>NFZ XO-6D3^Z]R?DB/H
MT?([BOEJW%N7SJNAET98JHM&J23C%]IU&U2BUU3GS=HL\Z>94')PH)U)=HZI
M>LM(KYN_D>B?%#XZ_"3X,V/VWXD^.K'369=T5J\F^XF'^Q"F7;Z@8KSO_A>/
M[1OQE_<? +X-'0=+DX7Q7X]S &7^]%:)F1^.58Y4\9 KK/A?^RO\%?A1??V]
MHWA?^T=:9M\WB'79C>7TC_W_ #),["?]@+7HM9?4.*,VUQN(6&IO[%'WI^DJ
MTUIYJG3BUTF]R?8YAB?XL_9Q[0U?SDU^44_,\6TG]C71_$VHQ>)OVC?B'J_Q
M!U*-]\=KJ$GV?38&_P"F=I$0H].20>XKU_1=#T7PYID6B^'M(M;"S@7;!:6=
MNL4<8]%50 !]*M4$@#). .IKU\KR'*,FYGA*2C*7Q2=Y3E_BG)N<O^WI,ZL/
M@\-A;NG&S>[W;]6[M_-A17F_Q(_; _9=^$GF1_$#X\>&;">+/F62ZHD]RO\
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
M@&(X3C.5?YAV-8M_X#_8I^ &KMXO_:$^,.E:WXECYDU'Q]XABN+G(YQ%;,V
M >0 A9>QKQL-F?$/$%54<BP,Y7VJ55*$?6--)UI_.-.+Z3/+Q.;JE2=1)0A_
M/5?)'[G[S^:BO,VW_:I\>_%1S8_LN?!B_P!<@8E5\5^(U:PTI?\ ;3=B2<>J
MJ%:B/]E+QK\49%U#]J3XRZAXAB+!CX6T!FL-*3_98)B2<#LS%6K#F_X*7_ W
M7)6TOX#^ /'GQ(GC/EHO@WP?.\",.,-),(PJC^\ 0*9_PN/_ (*,?$SY?AS^
MRKX5\#6TG^JU'XA>*3<N5_O&WL@'0_[+9YKZ%>$N>8OW^)*MU_)6G##TE_W
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
M6- 'Z345YU^Q_P#&FZ_:1_9+^%W[0]]:QP3^//AWHGB*>"(86)[VPAN60#L
M9",>U>BT %%%% '@O_!.K_DA^K_]CWK'_H^O>J\%_P""=7_)#]7_ .Q[UC_T
M?7O5 !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%>+_P#!0OXL_$#X&_L?>+_BE\+=?_LO7M+_ +/^PWWV6*?RO,U"VA?Y
M)D=&S'(Z\J<9R,$ U^8W_#V3_@H#_P!%]_\ +5TK_P"1:_2>#O"WB#C?+)X[
M U:481FX-3E-.ZC&7V825K276][Z'YCQIXK\.\"YI# 8^E5E.4%-.$8-6<I1
ML^:<7>\7TM:VI^Q/B7_D+Z/_ -?I_P#036Q7XL7/_!57]O:\FAGN?CQN>W??
M"?\ A%]+&TXQGBUY_&IO^'LG_!0'_HOO_EJZ5_\ (M?6?\2^<9_]!&'_ / Z
MG_RH^0_XF+X)_P"@?$?^ 4__ )<?M#17B_\ P3T^+/Q ^.7['WA#XI?%+7_[
M4U[5/[0^W7WV6*#S?+U"YA3Y(41%Q'&B\*,XR<DDU[17XSFF7ULHS.O@:S3G
M2G*$FKV;A)Q=KI.UUI=)VZ(_;<IS&AG&5T,?134*T(SBG:Z4XJ23LVKV>MFU
M?JPHKG?'GQ>^%/PMMOMGQ*^)6@Z!'MW!M8U:&VW#V$C M]!7CFL?\%./V7VU
M"30_AA/XG^(.IQG!T[P+X7N;UR>P#,J1MGU#$5T8#A_/,TASX3#3G'K)1?*O
M65N5?-G-F'$60Y5/DQ>*A"72+DN9^D;\S^29]"T5\?\ Q2_X*'?M#Z! /['_
M &8=.\(), ;6X^(WBA$NI,]/^);:AKGTY''.,BN9\.6?_!63]IR1;BX^)=I\
M/]!G&9)[+05LMP]83,)+HC'*D[0<C)%<F)IY1EV,^J8[,*,*RWIPD\147^*&
M&C6</6IR+NT>%4XXPE6K[+ 86O7EVC3<%ZMUG3T\U==KGVQXC\3>&_!^CS>(
M?%OB"RTNPMQF>^U&Z2&&,>K.Y 'XFOF+XV?\%=/V9_AU/)H7PZU!_&&J;MB'
M3RRVH?.,>8%9G.?[B$'^\*N>$/\ @E;\$[J\B\2?M%^./%OQ3UI5^:Z\5:]<
M>0C9SE(T<-CMAG9<=J]V^'OP.^#/PFA$/PR^%7A[0,+@OI.D0P.W^\ZJ&8^Y
M)-=&)PG#TZ5EB:[OOR0I4Y?]NSF\0OOHW]"YSXZS*-J<:.$B^LG*O/\ \!2I
MP3_[?EZGQ5-\=?VROVG9#Y/P2^(]_I4Q(BT;0;=/#6F7"GINU"[W2RJ1PR[
M.N"*]%^&/P"_;ITBP-A\/O#_ ,)/@[93+M>YL+*;7-9Q_P!-)9CY4N/=NN:^
MN:*Y,OH\,9-B/K.!RVG*O_S^Q#GB:WWU9.G%?W84HQ\C.CP=7G/VF.Q]:I+^
MZXTU\I17M5Z*K8^<?^'?FM^.?WO[0_[7WQ+\8[O]?IUEJBZ1ITOKFVMP?T88
MKL_AS^PA^Q_\*F2;PA^S]X=\^,Y2\U2T^WSJ?[PDN3(P/N"*];HKV,3Q7Q%B
M:3I/$RC!_8A:G#_P"FHQ_ ]3#<(\-X6JJJPL95%]N=ZD_P#P.HY2_$9;6UO9
MVZ6MI;I%%&H6..- JJ!T  X I]%%?/-MN[/HDDE9!1110,**** "BBB@ HHH
MH **** "L?P/_P @B7_K]F_]"K8K'\#_ /((E_Z_9O\ T*@#8HHHH **** .
M6^,?PB\)?&[P)=> _%\#>5-B2UNX>)K.X7[D\3?PNI_,$@\$BN'_ &>OB[XL
ML_$5S^SE\=)U7QEHD&^PU$\1^(+$<)=1D]7 'SKUR">S!?8:\^_:%^!D'QD\
M.VUYH>J'2/%6A3_:_"^OQ##VEP.=K$<F)\ ,O(Z'!QBOEL[RW%T,4LWRV-Z\
M%:<-E6IK7D?13C=NE)[-N+?+*1YV+H585/K-!>^M&OYH]O5?9??39LU/BU\!
M_@Y\=]$_X1_XO?#C2M?M@I$1O[4&6'/4QRC#Q'W1@:\6_P"&./C]\!?],_8T
M_:2O;?3XN8_ 7Q#WZEI>.T<4P_?6R>RY)SRU>G?L[_'.?XJZ5>^%_&NE#1_&
MOAR46WB?1'.-DG:>+^]#)]Y2,XSC)&&;TBOMN'.-,75RN$\%5]IAYZ^SJ14H
M7O:2=.::C-.ZEHIQ::NFCS<5D61YXUC.3EJVTJ0;IU%;HY1:EH]XRNNC1\V6
MO[>WB;X17,>A_MJ_ #7/ 3%Q&/%FE1MJFA3'. WG0@O"6[(P8@=2*]X\ _$G
MX?\ Q3\/Q^*OAMXTTS7=.E^[>:5>I.@/]TE"=K#NIP1W%;%U:VU[;26=Y;I-
M#*A26*5 RNI&""#P01VKP?Q]_P $[O@CJWB"3Q_\&+_5_A=XI;D:UX#O#:1R
M'J!+;#]S(F<Y4*I;/)KW?;<+9K_%A+"5'UA>I2^<)/VD%W:G4\HG+['BS*?X
M4XXRFND[4ZR])Q7LYOLG"GYS/>Z*^:?^$Y_X*#?LXCR_B)X TSXS^'(>NN>$
M$%AK<:#^*2R;]W,WHD///+5W?P6_;A_9P^.6I?\ ",>'?' TKQ$C^7<>%?$T
M!T_4HI/^>?E2X\QAW\LOCUKGQ7"^:4*$L3A^6O16\Z3YTEWDM)T_^XD8LZ<)
MQ5E=?$1PV(YL/6>T*JY&WVB[N%3_ +ARFCUNBBBOG3Z0**** "BBB@ HHHH
M**** "BBB@ K'LO^1WO?^O*+^9K8K'LO^1WO?^O*+^9H V**** "BBB@ HHH
MH **** "BBB@ HHHH **** "BN)^,7[2'P*^ &G?VE\8?BCI&A IOCMKJYW7
M,P]8X$S+)_P%37D(_;&_:$^./^B_L@_LMZC/82\1>-OB,QTO3<=I(X!^^N4]
MTP?:O=P'#><9A0^L0I\E+_GY-JG3_P# YM)OR3<NR/!S#B;)LNK_ %>=3GK?
M\^Z:=2I_X!!.27G)*/=H^E"0H+,0 !R37BOQ5_;_ /V:/AAK'_"'V7BV?Q=X
ME=BD'A?P/9MJE[(XZIB+Y$;_ &7=3[5RH_8<^*7QI(O/VS/VF]<\36TAS)X,
M\)$Z1HP'_/.01XEN5]&8HW/6O:?A5\#?@_\  _1_[!^$GPWTC0+<J!+_ &=9
MJDDV.ADD^_*?=R37;]6X6RS^/6EBI_RTOW=/YU)QYY>:5-7Z3ZG#]:XLS3_=
MZ,<+!_:J_O*GRIPER1\G*K*W6'0\6_X3'_@HE^T'\G@CP%H7P8T";[NK>*&&
MIZTR'H\=JF(HCZI+R/6M+PE_P3E^#<FN1>-_C_XCU_XK>(8SN6^\;Z@T]M">
MXBM%(B1/]A@X%?05%1/BO,*4'3RZ,<+!Z?NDU)K^]5;=5WZISY?)%T^$<NJS
M57,I2Q4UK^]:<4^\:24:4;=&H<W]YE;2-'TCP_IL.C:#I=M96=N@2WM+2!8H
MHE'\*JH 4>P%6:**^9E*4I-MW;/J(QC&*C%62"BBBD,*S?&/_(L7O_7 UI5F
M^,?^18O?^N!H N:=_P @^#_KBO\ (5-4.G?\@^#_ *XK_(5-0 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!C^)?\
MD+Z/_P!?I_\ 036Q6/XE_P"0OH__ %^G_P!!-;% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !7FG[7?[4?P^_8R^!-]^T1\5YD@\-:1K
M>BV>MWTL_EQV%M?ZM::>]Y(VT_NX!=>>PQRL3#(SD>EU%?V%CJEE-INIV45S
M;7$;1SV\\8=)$(P593P01P0>M 'XV?\ !<'X+_LR?&<_%G]K;P%XTCM?C=X6
MMO LW[._C#P'JV[5]6U>>2X6*PLA;L6O1+P0J!C'M\P$*KY_4KQ%K'BS1?V-
M;W7/CE>V5EKUO\-))?%UQYJ);PWHT\FZ(8':$$F_!Z8JO\*_V'?V2O@A\7-:
M^./PE_9\\(>'O$NNP017>HZ/X;M+9XUB5U_=&*)3&7$AWD'Y\+G.!7H7C#P/
MX*^(6C'P[X^\'Z7KFGF19#8ZQI\=S"77[K;)%*Y&3@XXH ^'_P#@V/U73-3_
M ."'_P #XM.U&"=K2SUJ&Z6&4,89!KFH$HP'W6P0<'G!![U[CHG_  5._P""
M;OC.'Q?IUK^V)X!,_@S6+K1?%>CZGK"6UY;7D,C0R0?9+@)-.3(K1IY:.LK#
M;&7/%>Q^!OA+\*OA@UTWPT^&?A_PZ;T(+TZ%HT%I]HV;MF_RD7?MW-C.<;CC
MJ:SK/]G;]G[3_B3-\9;#X%^#H/&%PY>?Q7#X8M%U*1B,%FNA'YI..,ENE 'Y
MB>._^"2GQ*\=_P#!O+\7?V5/A_X O=&UWQ9XQUSXA?#;P#<P&*YTFR.M_P!I
M:;HYB/\ JKA[&%(S$V/+FN2C8*$UU_\ P4<_:?T;]L'_ ((*:)X"^ ]U#KOQ
M&^/^@>'_  EX2\&6LRF^DUF2XM1J5K)%]Z(V:17AN&8!8?(;>5'-?I[7,:%\
M%/@UX7\?:A\5O#7PD\,:=XHU=-FJ^)+'0;>&_O5R#B6X1!)(,@<,QZ4 9W[,
M?P9L_P!G']FWX>_L]:?>BYM_ ?@?2?#L%RJX$J65G%;!\'ID19_&NXHHH **
M** /G7_@G]X;L-7^"^K75S-<*P\<:NN(IRHQY_H/K7N7_"#Z1_S\WO\ X%M7
MCO\ P3J_Y(?J_P#V/>L?^CZ]ZH Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P#
MMJV** ,?_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJV** ,?\ X0?2/^?F]_\
M MJ/^$'TC_GYO?\ P+:MBB@#'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:MBB
M@#'_ .$'TC_GYO?_  +:C_A!](_Y^;W_ ,"VK8HH Q_^$'TC_GYO?_ MJ/\
MA!](_P"?F]_\"VK8HH Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJV** ,?
M_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJV** ,?\ X0?2/^?F]_\  MJ/^$'T
MC_GYO?\ P+:MBB@#'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:MBB@#'_ .$'
MTC_GYO?_  +:C_A!](_Y^;W_ ,"VK8)"@LQP!U)KQ_XK?MY_LI?!^\.B^(?B
MY8:AJY?RX]#\.AM1O'D[1^7;AMC'T<K7=@,LS'-*WLL'1E4EVC%R?X)V7F<.
M89IEN54?;8VM&E'O.2BOQ:N_(X+_ (*J^%=.TW]@GQY>P3W+.G]EX$EPS#G5
M+0=#]:_'"OTT_P""@_[2WQS^-7[(/BZ'2/V2_$/AGP-)]@;4/$_C2[BLKPJ-
M0MC$(K')D.Z01C<6("DGTK\RZ_L3P-RS%95PG7HXCEYG7D[1E&5OW=)6ERMJ
M,M-8NS2M=:G\6^/.:83-N+Z%;#<W(J$5>4)0O^\JN\>=1<HZZ25XMWLW8***
M*_9C\3/TE_8$\*_MT>,OV3?">F?!R?P'X<\++]O%KK^N7%W<WT^;^X+LEO$1
M&FV0NN'ZA0>]>U)^P5\2_%-N]Y^T)^W/X]U6 *7N+/PP\.A6FWJ5<1[RR =R
M0>,UYY_P3C^+?QVF_8S\&_#7X'_!%[N>S_M%;GQ5XDN/LVEQ%]1N9 8POSW&
M X#!,$,",'%>XP?LD>(/B3.FJ_M1_%_5/%GS!QX<TQC8:3$>H!CC(:7'9F*G
MU!K_ #IXW\2<YH\:9G@L@P,7.GB*T95/91IQ4HU))MUZL95&[K7V$9*]]K:?
MW;PAD6#Q_">7NI[:O>A2TG5G"E']W'W>6+C&26R]R;[N]SQF+X0?\$Y?A[X@
M?P_\)/@?<_%'Q6&S)'9>9J_[S/\ K)KB<M#&,]67.,<@5Z1X=^ G[2'Q"M8[
M3Q%XDLOA;X<_Y9^'/"$@FOMA_A>XXCB;_:C!]Q7O/A'P3X/\ Z.GA_P3X8L=
M)LH_NVVGVJQ)GU(4#)]2>36I7P&/PW%/%$^?B/,JE9?\^X2G"'HY<SJR[?'"
M#6\+:'W>7\-8' PY:=.%.+^S2BJ<?FX^]+SU2?5'F/P[_9"^!WPQN/[4\.^'
M9I=48[I=:U"Z:>[D8]6,C<J3WVX'M7;?\(/I'_/S>_\ @6U;%%>A@,MR_*L.
MJ&#I1IP72*45ZV77N]V>_1H4</#DI145V2L8_P#P@^D?\_-[_P"!;4?\(/I'
M_/S>_P#@6U;%%=IJ8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!;5L44 8__"#Z
M1_S\WO\ X%M1_P (/I'_ #\WO_@6U;%% &/_ ,(/I'_/S>_^!;4?\(/I'_/S
M>_\ @6U;%% &/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M6Q10!C_P#"#Z1_
MS\WO_@6U'_"#Z1_S\WO_ (%M6Q10!C_\(/I'_/S>_P#@6U'_  @^D?\ /S>_
M^!;5L44 8_\ P@^D?\_-[_X%M1_P@^D?\_-[_P"!;5L44 8__"#Z1_S\WO\
MX%M1_P (/I'_ #\WO_@6U;%% &/_ ,(/I'_/S>_^!;5F>%?"NG:AITDTT]R"
M+F10$N&48#5U=8_@?_D$2_\ 7[-_Z%0 ?\(/I'_/S>_^!;4?\(/I'_/S>_\
M@6U;%% &/_P@^D?\_-[_ .!;4?\ "#Z1_P _-[_X%M6Q10!C_P#"#Z1_S\WO
M_@6U'_"#Z1_S\WO_ (%M6Q10!XK^T#^SIK%Y/;_&?X)W,L'C;0H_W<4MP?+U
MBU'+V<IR.O\ "<\'CC(9>B^"/B[P#\<O T/C'P[/J%O,CFWU72[B[83Z?=+Q
M)!(.""#T.!D$'O7I%>&?&WP-XH^"'CJ;]J7X,Z5)<HZ*/B!X8M^!JEJO6ZC7
MH+B,9.?XAG_:#_&9G1K<-XZ>;86+=">N(II7VT]O!+[45I4BM9P5U><4I>77
MA+ U7B::O!_&E_Z6EW7VEU6NZU];_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "
MVI? GCGPO\2O"-AXX\&:K'>Z;J, EMIX^X[J1U5@<@J>000>E:]?74:U'$T8
MU:4E*,DFFG=-/5-/JFMF>E"<:D5*+NGL8_\ P@^D?\_-[_X%M7%?%S]C_P#9
M\^.UC]B^*W@"#5V5-L-Y,[+<PC_8F7$B?0-BO3:*[<+C,7@:ZKX:I*$UM*+<
M6O1JS,,7@\)C\/*AB:<:D);QDE)/U3NF?+5_^Q[^T_\  T_;/V6?VBY]=TF'
ME/!'Q,EDN(@H_@AO8L21@#A4(VCC<32:3^VCX:^'VI0^%?VQ?A%XM^%NHR2"
M*/5KJ5[_ $6Y?_IG>P @$]<,,*",M7U-5?5M(TG7M-FT;7=,M[VSN8REQ:7<
M"R1RJ>JLK AA[$5]%_K%ALPTS?#1JO\ Y^0M2J^KE%.$WW=2$I/^9'S?^K6*
MR[7)\5*DE_R[G>K2]%&34X+LJ=2,5_*SG?"EO\//'>AP^)_!'C!-8TVX&8+_
M $S5Q/#(/9T)!_.M+_A!](_Y^;W_ ,"VKQ/Q9_P3L^&FG:[-XZ_9H\;:[\)?
M$4IWO/X2N3_9]PW83V+GRI$']Q=@K-_X7-^W5^SK^Y^.WP4M?B=X?A^]XK^&
MR[-11!_%-ITF-[=2?**H .M']@8#,=<IQ49O_GW5M2J>B;;IS\K34G_(M@_U
MAS#+=,WPDH1_Y^4KU:?JTDJL/.]-Q7\[W/?O^$'TC_GYO?\ P+:C_A!](_Y^
M;W_P+:N*^"'[8G[.O[0C_P!G_#?XD6CZJA*W'A_40;34(6'WE-O+M<[3P2H9
M?>O3:\#&X#&Y;B'0Q=*5.:W4DXO[F?0X',,#F>'5?"58U(/:46I+[T8__"#Z
M1_S\WO\ X%M1_P (/I'_ #\WO_@6U;%%<AV&/_P@^D?\_-[_ .!;4?\ "#Z1
M_P _-[_X%M6Q10!C_P#"#Z1_S\WO_@6U'_"#Z1_S\WO_ (%M6Q10!C_\(/I'
M_/S>_P#@6U9EKX5TZ3Q3=6#3W.R.VC92+AMV23U-=76/9?\ ([WO_7E%_,T
M'_"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/
MI'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (
M/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\
MWO\ X%M6Q7CGQ=_;R_9F^#^J_P#"*WWCO^W_ !$[F.#POX1MSJ5_+)_SSV0Y
M5']I&6N[ 99F.:UO8X.E*I+M%-V7=VV7=O1'!F&:9;E-#VV-K1IQ[R:5WV5]
MWV2U9Z7_ ,(/I'_/S>_^!;50\2:?X#\&Z/-XB\7>*UTK3[==UQ?:EJP@AB'J
MSN0H_$UXB/B1_P %"/V@OW?PP^$^D?"'09ONZ[XY<7NK,G]^.Q3Y(G_V)LCC
MK5_PW_P3F^&&K:S#XR_:5\=>(_BSKL3;TE\6W[?8(&[^391D1HA_N-O'->Y_
M8.79?KFF+C%_\^Z5JT_1M-4H^=ZCDOY=+'A?ZP9EF.F58.4E_P _*UZ-/U2:
M=67E:FHOI/J8FO\ [<'PG\0ZM-X0_9>\ ^,?BSK4+['_ .$962+38'[":^E
MC1>GS*&7GK4-G^S[^W/\=9/M/Q<^,UG\+=#EY/A[P%*UUJ;(?X9+Z4[8G']Z
M($'TKZ;T#P]H'A328= \+Z'9Z;86R;;>RL+9(88E]%1 %4?05<H_M_+\OTRO
M"1@_^?E6U:I\E)*E'RM3YE_-U#_5[,<QUS;&2FO^?=*]&GZ-Q;JR\[U.5_RZ
MV/%/A7_P3Z_9@^$NH#Q%H_@J;4]=+^9+XC\0WC7M]))_ST\R3(1O= M>I_\
M"#Z1_P _-[_X%M6Q17A8_,LPS2O[;&595)=Y-MV[*^R[):(][+\LR[*J'L<%
M1C3AVC%15^[MN^[>K,?_ (0?2/\ GYO?_ MJ/^$'TC_GYO?_  +:MBBN([C'
M_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VK8HH Q_^$'TC_GYO?\ P+:C_A!]
M(_Y^;W_P+:MBB@#'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VK8HH Q_^$'T
MC_GYO?\ P+:J/B7PEIECH-U=PW%T6CB) >Y8C\1735F^,?\ D6+W_K@: *EE
MX+TJ6SBE:YO,M$I.+IL=*E_X0?2/^?F]_P# MJTM._Y!\'_7%?Y"IJ ,?_A!
M](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F
M]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?
MF]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK
M8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"V
MH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,
M?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2
M/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](
M_P"?F]_\"VH_X0?2/^?F]_\  MJV** .:O\ 0K/1M9TMK66=O,O,-YTQ;HIZ
M9Z5TM8_B7_D+Z/\ ]?I_]!-;% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '@O_!.K_DA^K_]
MCWK'_H^O>J\%_P""=7_)#]7_ .Q[UC_T?7O5 !1110 4444 %%%% !1110 4
M444 %%%% !1110 453U[Q%X?\*Z5+KOBC7+/3;& 9GO+^Z2&*,>K.Y 'XFO#
M/%?_  4D_9UM-8D\)?"0:_\ $S74X&E?#[19+_!Z F;B+9GJRLV "<5ZF79)
MF^;M_4Z$II;M)\J_Q2^&*\VTCRLRSS)\G2^NUXTV]DVN:7^&/Q2?DDV>_P!1
MWEY::?:R7U_=1P0Q(6EFF<*J*.I)/ 'O7SC_ ,);_P %)?C=QX3^'?A'X0:1
M+TOO$MY_:^JA>SI#$!"A[E).1TS4MI_P3D\(^-KJ/6/VIOC5XT^*5VKAS9:Q
MJKV>EHXYW1V=L5"<]MY'3BO5_L#+L%KF6-A%_P E+]]/[XM4O_*M_(\G_6',
ML=IEF!G)?SU?W$/NDG6_\I6\S<^(7_!13]E?P-JW_"+:'XWG\9Z\Q(AT#P'8
MOJMS*PZJ##^Z!SQ@N#FN>_X7)_P4$^-?[OX1?LXZ+\.=+E^YKOQ+U(RW93^\
MME;_ #1..RR9&:]/M9_V7OV6M$.CZ>W@_P $VH0$VELMO:/-CN47#RM[X)-<
MO-^V]X)\12M9_!7X<>+_ !U-G:L^BZ')':*W^W-,%VCWVD5X68<>< <.U?8T
MJ<)5>GMI^TF_.-"ER_=)54<=:AFM>7+F68JG?_EW0BHOT<Y>TJ/U@J;.9'[
M/B'XHG[7^UO^U%XR\>+)S-X?TVX&C:.P_NM;VQR^.@;<I_.O7_A3^SS\#?@;
M9BS^$GPJT30?DVO<6-@HGD'^W,<R2?\  F-<+_;7[=7Q$XTOP?X/^'UF_635
M;YM3O4'8J(@(L^S4?\,?ZYXR_>_'7]HWQCXH#?ZW3K&Y73+"3U!@@Z_@PKP\
M?XC\5Y[1]AA,+6E2Z*2CA:*_[AVC)?*@SHR_)\IP-;V^"P3E4_Y^5+N;]:E5
MRJ_@<;_P50\:^"];_8Z\9_"[2_&6D3>(K\Z>+315U.$7,GEZC;2O\A;(PB.>
M<=/6OR3_ .%4>/\ _H ?^347_P 57[AZ/^R-^S?X>\.WGAG1?A%I$$-]9R6L
M]PUOYMSY;J5;$TFZ13@]0W7FOSJ^//[,?Q"^!'Q*/@;7+"2:TN[@C1M76,^3
M>0Y^]GHK*/O)U4^H()\+-?I$^-7@CD45EV!P57#59RE-RAB*CIS:C%)SC5HI
MQDHJS]FM4TWJD?FWB3X;RXNSBACL1S\[C&DHTFFOBDXI\T&VY.;2>BV5K[_,
MG_"@?B3_ ,(I_P )7_8Z[/MGD^1]HCW;<9\S.[&W/R]<YK,_X51X_P#^@!_Y
M-1?_ !5?9G_"/:?_ ,(__P (WY?^C^1Y73G_ 'OKGGZU@_ ?]F3XA?';XE#P
M-H5A)%:6EP!K.KM&?)LX<\L3T9B/NIU8^@!(^1R;Z?WCWFN.C@\+EV!JU:DO
M=C['$7UZ*V*6B[RNTKMRL='B1]%S*N#5E[P]2M-5H*,[2B_WR5Y?8TBT[Q\H
MR['V]_P2\\.:UX4_83\!Z)X@L6MKI(M0D:)F!PDFHW4B'*DCE'4_C7OU9_A3
MPSH_@OPQIWA#P];>38:7916MG%G.V.-0J@GN< 9/>M"OV+%9AF&;XF>.QZBJ
M]5N=3D34.>;YI<BDY24>9OE3DVE:[;U/UW)<NAD^3X; 0;:HTX03>[4(J-WM
MKIV04445@>F%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% &9XS\5Z5X&\*W_B_6Y=MKI]JTTN#RV!PH]R< >Y%97P?\1:?XN\"VWB;
M2GS;WTCS1YZKD_=/N#D'W%>'_MZ_%?\ X\OA#I%S_=O-7VG_ +]1G]7(_P!P
MTG[!/Q553??"+5;C&2U[I.X]>GFQC]' _P!\U^.?\16P?_$5/]6;KV7+R<W_
M $_^+EOVM[EM^?0^Y_U-K_ZG?VMKSWYK?].]K^M_>_PGTS1117[&?#!1110
M4444 %'7K110!\]^);"^_8M^(,WQ#\.VDLGPO\27P/B73+="P\/WCD*+R)1T
MA<X#J.G&/X%KW^PO['5;&'4],O(KBVN8EEMYX7#)(C#*LI'!!!!!%,U;2M,U
MW2[C1=9L(KJTNX&ANK:= R2QL,,K \$$$C%>#>"=5U/]CKXA6WP?\8W\LWPZ
M\0797P9K=S(6_L>Y8DG3YW/1"<F-C^OS;/B%_P 8=C;?\P%66G:A4D]O*C4D
M].E.;M\$ER>2O^$NK;_ES)_^ 2?_ +:W_P" OR>GT#1117VYZP4444 %%%%
M'FWQO_9%_9X_:(3S_BC\,[&ZU!,&WUNT!MK^$C[I6XB*R<'!"DE>.E>9?\**
M_;?_ &=_W_[/?QW@^(F@0_=\'_$XDWB(/X8=0CPS-C@"0*BX[U]+45[^"XFS
M7!X=8:<E5HK_ )=U$IP7^%/6#\X.+\SY['<+Y3C,0\5"+HUW_P O*3<)O_$U
MI->512CY'SQX9_X*)> M"UJ#P1^U+\.]?^$FO3-LC'B:W\S3+E^_D7\0\MU'
M/S,$7WKWW1-<T3Q+I4&N^'-8M=0L;E-]M>65PLL4J_WE=20P]P:B\2^%O#/C
M319_#?C#P[8ZKIURNVXL-2M$GAE'HR."I_$5X%K?_!/+0?!6JS^+_P!D/XN>
M(?A3JTKF22QTN8WFCW+^LMC.2A]!M("C.%KKMPKFNSEA*C[WJT?O_BP7RK/S
M.._%N4[J.,IKM:E6^[^%-_.BO(^C**^:?^&D?VP_V>_]&_:@_9V_X2S1(>&\
M;_"W=<;4'\<]A)B1..6=2$'. :]7^"?[4OP!_:(LOM7PA^)^FZK,J;I]-\PQ
M7D'KOMY LB@'C)7''!-<>.X;S7 X=XE152C_ ,_*;4X?-QORO^[-1EY';@.)
MLHQ^(6&<G3K?\^ZB=.?RC*W.O[T'*/F=_1117@GT 5CV7_([WO\ UY1?S-;%
M8]E_R.][_P!>47\S0!L4444 %%%5-<U[0_#&E3:[XDUFTT^QMDWW%Y?7"Q11
M+ZL[D!1[DU48RG)1BKMDRE&$7*3LD6Z*^>O$_P#P4:^$]_K4W@O]G+P=XB^+
M&OQ':]MX-L&:R@;L9KQP(D0_WUWBJ'_" ?\ !0S]H+Y_B/\ $W1?@]H,WWM$
M\&*-0UAD_N27C_NXF]'A].E?30X4Q]&"J9C..%@]?WK:FUY4DI57?H^11_O(
M^7GQ=E]:;IY;"6+FM/W23@GYU9.-)6ZKG<O[K/9?BU\??@M\"-)_MKXO?$S2
M- A*%HDOKL":8#KY<0S)*?9%)KQH_ML?&7XV'[)^QQ^R_K&M6DG$?C3QQG2=
M( [21JW[ZY3IPNUO:NN^$O[ _P"S/\)=6_X2R/P2_B7Q&[AY_%'C*Y;4[Z60
M?\M-\N51O=%4U[-TZ57UKA;+/]WHRQ,U]JK[E/Y4X2YGY.55)]8="?JG%>:?
M[S7CA8/[-+]Y4^=6I'E7FHTFUTGU/FH_L6_''XW_ .E_MB_M1:MJ=E+S+X*\
M! Z5I6.\<D@_?7*?[^UO>O9/A%^SW\$O@+I?]D?!_P"&.D:#&4"RRV5J//F'
M_329LR2_5V-=C17#C^(\XS&C["I4Y:7_ #[@E"G_ . 02BWYM-]VSNR_AK)L
MMK_6*=/FK?\ /R;=2I_X'-N27DFHKHD%%%%>&>\%%%% !1110 4444 %%%%
M!1110 4444 %9OC'_D6+W_K@:TJS?&/_ "+%[_UP- %S3O\ D'P?]<5_D*FJ
M'3O^0?!_UQ7^0J:@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@#'\2_P#(7T?_ *_3_P"@FMBL?Q+_ ,A?1_\ K]/_
M *":V* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** /!?\ @G5_R0_5_P#L>]8_]'U[U7@O_!.K
M_DA^K_\ 8]ZQ_P"CZ]ZH **** "BBB@ HHHH **** "BN8^)GQJ^$7P:TW^U
M_BK\2=%\/P%2T9U348XGEQV1"=TA]E!->+3?\%$;+XARMIW[)O[/?C7XF2[B
ML>K06!TS2-W3#7ET!MY]4Z \U[67\.YUF=+VN'H-TUO-VC37K4DXP7SD>)F/
M$F1Y55]CB*Z51[0C>=1^E."E-_*+/I"L?QK\0? ?PVT=O$/Q#\::5H5@F<WF
MKZA';QY]-TA )]J^>==\._M]?$6P;6/C-^T'X,^#'A]O]99^%X%N[[9_<DO+
MIA'$_P#MQ'MTZUPVE> O^"<?@WQ0-3UFX\2?'#QB.3=:JUQXAN)CGLI"VS#/
M3@_6L<RJ\$<,V>>9M3C)[4Z5IR?ES2<(/U@ZGHSQJ_$N:5M,+A/9I[3Q$U3O
M_AIQYZK])1IM]STW5O\ @I'\*_$.HR^'?V;_ (=^+_BIJ<;;&_X131)%LH7_
M .FMU,%1%Z?. PYJO]C_ ."EOQO_ ./S4_!OP8TB;_EG:H-=UA%/4%CBVZ<9
M7!!K=TGXG?M/>(M.BT7X*_LK:?X2TN--MI=^,M02VCB7T^QVX\Q,>@-6?^&?
M_P!I#Q[\_P 7/VJ-0L;=_OZ5X$T]+!4]0+ELR,/J*\C_ (B-EL-.'<EJ57TJ
M5XW^?[_V5-K_  T*GDWN<WU'-\SUQ>)JS3^S1C]7I_\ @3;K/UC4U[=N/OOV
M%OV6?"-Q%XY_:Q^*^K>.]2C)=+_XD^*R+:-NXBMPR1A>P0AQ72:+^UG^S9X-
MLQX'_9X\ ZCX@%N=J:1\/_"C"")O<A8XP.GS#/%=%X3_ &*?V</"][_:]WX
M37=18YEU'Q-<O?R2'U(E)3/T45W-_P"*_AK\/+)=/U#Q#HNBP0KB.V>YB@51
MZ*F1^0%>+G/$7B'G-)3S3&TL-26RO*KRK^[S>QI0]%3DO7<]C*.&GA*C6 P]
M.E*6[C%U*DO\4W9M^<N8\P_X6!^VO\0CM\&?!3P[X+M'^[?>+]8-U,5_O"&V
M'R-_LOFC_AE[XL^.?WGQL_:H\37T3\R:7X5BCTFWQ_<8Q@M(OUP372WW[5OP
M9BN#8Z'K5YK=R/\ EVT73)IV/T.T*?SJ'_A=OQ2U[CP-^SEKKJWW9M?NXM/
M]RK;B?H*^%EBN#<3)K%9C5Q\NL82G4C?LZ6$BH/TE%VZGUBX,S2:YL7&=O\
MI[)4H_<W"+7R9)X&_9"_9P^'THO-$^%.FW%WNW&^U9#>S%_[VZ<OM/\ NXKT
M>***")8((E1$ "(BX"CT [5YI]E_:R\1_P"NU/PAX;A;I]GAEO+A/KN^0T?\
M*"\::[SX]_:%\47N?OQ:08]/C;V*Q@\>U>WE^/6"I>RR;)IPAW<:5"'S3DJG
M_E-G;1R++,#'EEB*4%V@I2?_ )+'E_\ )CT+5M>T/0(/M6NZS:647_/2[N%C
M7\V(KC-;_:?^!6A2_9Y/B#:W<Q.$ATR-[HN?0&)6'ZU'I/[+'P.TR?[;<^#1
MJ5R?OW&K7<MRS_4.Q7]*[/1/"OA?PS%Y'ASPW8:>F,;+*S2(8_X"!7??CG%[
M+#X=>M2N_N_V=7^;7J;6X>H]:M7_ ,!IK_W(_P OD<#_ ,-$:UK?R^ O@5XN
MU//W)[RS6R@?Z22$_P J\._:T^-7Q*\0)#\,?&/A.PT0(\=Y<6=MJ NI1PP1
M7=<*.#NP!GE37U7XS\5Z5X&\*W_B_6Y=MKI]JTTN#RV!PH]R< >Y%?GKXS\5
MZKXY\57_ (OUN7==:A=--+@\+D\*/8# 'L!7X-XZYWFV09-3RRIF,ZE7$WYH
M1A3A!4UNVE%U/>E9*]2S2E=,_1O#S+\%F6.EBXX6,84K6DW*4N?INU'1:OW;
MW:,RO:?V2+SQ#XLU2Y^&EE\6M7\/?NVNK""Q",DS#_6###AL8;CJ WI7BU:?
M@SQ7JO@;Q58>+]$EVW6GW2S19/#8/*GV(R#[$U_-/".=4\@XAH8RLI.DI)5%
M&4HMP>DDG!QE>VJUW2OH?J^=Y?+,LLJ4(6Y[7BVDTI+;22:\GILV?:/_  HS
MXC?]')>)O^_$/^%'_"C/B-_T<EXF_P"_$/\ A7<^#/%>E>.?"MAXOT27=:ZA
M:K-%D\KD<J?<'(/N#6G7^A6'X0X9Q5"%:C[24))--8BO9IJZ:_>[-'\RU,[S
M:C4=.?*I)V:]G3T:W7P'F?\ PHSXC?\ 1R7B;_OQ#_A1_P *,^(W_1R7B;_O
MQ#_A7IE%;?ZD\/\ \M3_ ,'U_P#Y:1_K!F?>'_@NG_\ ('F?_"C/B-_T<EXF
M_P"_$/\ A1_PHSXC?]')>)O^_$/^%>F44?ZD\/\ \M3_ ,'U_P#Y:'^L&9]X
M?^"Z?_R!YG_PHSXC?]')>)O^_$/^%'_"C/B-_P!')>)O^_$/^%>F44?ZD\/_
M ,M3_P 'U_\ Y:'^L&9]X?\ @NG_ /('F?\ PHSXC?\ 1R7B;_OQ#_A1_P *
M,^(W_1R7B;_OQ#_A7IE%'^I/#_\ +4_\'U__ ):'^L&9]X?^"Z?_ ,@>9_\
M"C/B-_T<EXF_[\0_X4?\*,^(W_1R7B;_ +\0_P"%>F44?ZD\/_RU/_!]?_Y:
M'^L&9]X?^"Z?_P @>9_\*,^(W_1R7B;_ +\0_P"%'_"C/B-_T<EXF_[\0_X5
MZ911_J3P_P#RU/\ P?7_ /EH?ZP9GWA_X+I__('F?_"C/B-_T<EXF_[\0_X4
M?\*,^(W_ $<EXF_[\0_X5Z911_J3P_\ RU/_  ?7_P#EH?ZP9GWA_P""Z?\
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
MS_H84?\ P./^9\Q_J[GW_0-/_P !9Z717FG_  UC\*/^>6N_^"&?_P")I/\
MAK?X+#@ZGJ8]O[#N?_B*/]?."^N8T5_W$BOU#_5S/O\ H%G_ . O_(],HKS/
M_AK?X+?]!34__!'<_P#Q%'_#6_P6_P"@IJ?_ (([G_XBC_7S@K_H94/_  ;#
M_,/]7,__ .@6I_X!+_(],HKS/_AKKX%+Q/XDO8F_NR:+=9_2.E_X:\^ G_0V
M77_@ENO_ (W1_KYP1_T,\/\ ^#J?_P D+_5SB#_H$J?^ 2_R/2Z*\T_X:\^
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
MQZ!!V_<^'MV/?YCUKTRBC_5#"/XL5B7_ -S%5?\ I,D/^VZRVHTE_P!PH/\
M-,\S_P"%=?M*3_ZW]HZT@S_SQ\'V[8_[Z:C_ (5-\>YO^/S]J"Z;/WO)\*6L
M?Y8/%>F44?ZEY0_BJXA^N+Q7Y>VM^ ?V]CEM"DO^X-'_ .5GF?\ PI3XK3#_
M $O]I;7FSU\G3H(_Y=*/^%!>,91_I?[1GC)NY\FXCCY_!>GM7IE%'^I/#[^*
M-1^M>N_SJ,/[?S/HXKTITU^4#S,_LX7DO_'U^T#\1CW_ '/B(1\_A'T]J/\
MAF+1G_X^?BWX^F]/-\3L<?DM>F44?ZC<*OXL-?UE-_G)A_K#G'2K;T45^2/,
M_P#AE;P _P#Q\^)_%4WIYOB*4X_*@_LE?!N3_CZL]6G_ .NVNW!X].''%>F4
M4?ZB<&_:P%)^L$_SN'^L6>],3->DFOR/-%_9 _9ZW!YO ;RL.C2ZO=G\/];5
MB']E+]GR#&SX:VQQ_?NIV_FYKT.BKAP-P53=XY9AU_W!I_\ R),N(<_EOBZO
M_@R7^9PT/[-/P'@QL^&&F''3?&S?S)JU#\ ?@E!C9\*M".!_'IL;?S!KKZ*Z
MX<*\,4O@P-%>E*"_]M,)9QF\_BQ$W_V_+_,YJ'X,_""W_P!1\*O#BG&,C1(,
MX^NRK4/PU^'-O_J/ &B)QCY-*A''X+6W179#)<GI?!AJ:](17Z&,L?CI_%5D
M_P#MY_YF=%X0\)P9\CPOIR9Z[+*,?TJU%ING0?ZBP@3/79$!_2IZ*ZX8;#4O
M@@EZ)(PE5JS^*3?S/,_VK?BO_P *N^%5S_9]SLU35\V>G[3ADW#]Y(/]U<X/
M9F6OANOM'X]?LN:K\=/%4.OW?Q-_L^UM+40V=@-'\T1\Y=MWG+DL?8<!1VS7
MGNL?\$_/[)TN?4O^%M^9Y*;MG]@XS^/GU_*'B[P/XF\<<52K87 MX:DN2E^]
MHJZWE.SJ)IR?=)\JBFKH_9>">(.$N'LG4*V(M5F^:?N3=NT;J-M%\KMV/G"O
MN3]E+XK_ /"T?A5;?VA<[]4TC%GJ&XY9]H_=R'_>7&3W96KS"W_X)X_:+>.?
M_A;^-Z!L?\(_TR,_\_%=Y\!?V7-5^!?BJ;7[3XF_VA:W=J8;RP.C^4).<HV[
MSFP5/L>"P[YH\(N!_$W@?BJ-;%8%K#55R5?WM%V6\9V51MN+[)OE<DE=AQMQ
M!PEQ#D[A1Q%ZL'S0]R:OWC=QMJOE=*YZ_1117];'XL%%%% !1110 4444 %%
M%% !1110 $ C!%1_8K/_ )](O^_8J2BDXQENAIM;$?V*S_Y](O\ OV*/L5G_
M ,^D7_?L5)14^SI]D/FEW*[Z1I4K;Y=,MV)ZEH5)_E2?V+HW_0)M?^_"_P"%
M6:*ET*#^RON0_:5%U96_L71O^@3:_P#?A?\ "FR:!H,HVRZ):,!T#6RG^E6Z
M*3P^':LX+[D/VM5?:?WE'_A&/#7_ $+UC_X")_A1_P (QX:_Z%ZQ_P# 1/\
M"KU%3]4PG_/N/W(?MZW\S^]E$^%_#+ JWAVQ(/4&T3_"OD3]M+QOH.J_$%/
M?A73;2WM-#4K=O:VZIYMRV-P)4<A!A?8EZ^MO&=[XCT_PK?WGA#1_M^J):M_
M9]H94022D87)<A0 3DY/0''-?&=[^R3^TOJ5Y-J-_P" FEGGE:2:5]8M"SNQ
MR6)\[J2<U^!>/']N8G)Z63Y-@*E7VKYJDJ=*4DHQ>D.:,6DY2U:O>T==)'Z1
MX<_V?2QT\=CL3&'(K14YI7;W=F]DM/5^1Y=7N7[#OQ7_ .$3\>2_#W5;G;8Z
M]C[-N/$=VH^7Z;URON0E<G<_LF?M V<T,%SX VO</LA']JVAW'&<<2\?C5NR
M_9)_:7TV\AU&P\!-%/!*LD,J:Q:!D=3D,#YW4$9K^<N$LE\1.$^(L/FN'RK$
MWI2NU["K[T7I*/P_:BVO+?H?J6=8_AC.LKJX.KC*5IK1^TAH]T]^CLS[?HK,
M\&7OB/4/"MA>>+]'^P:H]JO]H6@E1Q'*!AL%"5()&1@]",\UIU_H9AZT<10A
M52:4DG:2::NKV:>J?=/5/1G\QU(.E4E!M.S:T=UIV:T:[,****V("BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ KYK_X+"?'#]H']FW_@F7\8_CC^RW92
M2^.O#OA)KC19H;03O9*9HDN+Q4((9K>W>:X&X%<PY8$9%?2E8WCOQMX,\ :#
M'K7CW5X++3[O5+#2DEN4+))=7UW#96L. #S)<7$,0SQF09(&30!^7/[)'P5^
M ?[=7PV^)GQO_P""?G[27CP>,5\ >%KWPC\0[;XHZH^J'Q +.\DEM=7,MRRS
MEYT$5Q;W",B*Y,:H A'Z-_M8>$O$_C3]G?Q=H_@_XL^(_!6H#P_>RV^O>%9;
M>.\A9;>0J%>>&4)\V#N0*X*C:R\Y_)#]NO\ 8]\=?\$M_P!H7XY_\%+_ /@E
M3XSL_AO%\,M/\.ZS\0O@\8V_X1KQ?87C3_:E,&X+;R*5#(L84*&?RO*<_/\
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
M@W9?^ Q_QH V**Q_L7C?_H-V7_@,?\:/L7C?_H-V7_@,?\: #Q+_ ,A?1_\
MK]/_ *":V*Y37+7Q2NHZ:MUJEL[M<D0,L! 5MO4^M:?V+QO_ -!NR_\  8_X
MT ;%%8_V+QO_ -!NR_\  8_XT?8O&_\ T&[+_P !C_C0!L45C_8O&_\ T&[+
M_P !C_C1]B\;_P#0;LO_  &/^- &Q16/]B\;_P#0;LO_  &/^-'V+QO_ -!N
MR_\  8_XT ;%%8_V+QO_ -!NR_\  8_XT?8O&_\ T&[+_P !C_C0!L45C_8O
M&_\ T&[+_P !C_C1]B\;_P#0;LO_  &/^- &Q16/]B\;_P#0;LO_  &/^-'V
M+QO_ -!NR_\  8_XT ;%%8_V+QO_ -!NR_\  8_XT?8O&_\ T&[+_P !C_C0
M!L45C_8O&_\ T&[+_P !C_C1]B\;_P#0;LO_  &/^- &Q16/]B\;_P#0;LO_
M  &/^-'V+QO_ -!NR_\  8_XT ;%%8_V+QO_ -!NR_\  8_XT?8O&_\ T&[+
M_P !C_C0!L45C_8O&_\ T&[+_P !C_C1]B\;_P#0;LO_  &/^- &Q16/]B\;
M_P#0;LO_  &/^-'V+QO_ -!NR_\  8_XT ;%8_@?_D$2_P#7[-_Z%1]B\;_]
M!NR_\!C_ (UF>%;7Q3)ITC6&J6T:?:9 5D@).[=R: .KHK'^Q>-_^@W9?^ Q
M_P :/L7C?_H-V7_@,?\ &@#8HK'^Q>-_^@W9?^ Q_P :/L7C?_H-V7_@,?\
M&@#8HK'^Q>-_^@W9?^ Q_P :/L7C?_H-V7_@,?\ &@#8HK'^Q>-_^@W9?^ Q
M_P :/L7C?_H-V7_@,?\ &@#8HK'^Q>-_^@W9?^ Q_P :/L7C?_H-V7_@,?\
M&@#8HK'^Q>-_^@W9?^ Q_P :/L7C?_H-V7_@,?\ &@#8KP/XI^'-=_9;^(%U
M^T7\-=+ENO"NJRAOB)X;M%R8^?\ D)0+T#KG,@'49)ZEE]D^Q>-_^@W9?^ Q
M_P :9-IGC&XA>WN-6L)(Y%*NCVF0P/!!!ZBO%SO)X9OAHJ,_9UJ;YJ=1;PFN
MOG%J\9Q>DHMI[W.7%X58FFK.THZQ?9_Y=&NJT+WAOQ)H7C#0+/Q1X8U2&]T^
M_MUFM+J!LK(C#((_PZCH:NU\T^1XO_8E\8QVIU2+_A5_B74?EE\DNGAF]D/0
M@\K;2'OT4^A^_P"^16WC.:-9H=?L71U#(ZVY(8'H0<\UGD6<3S*G.AB8>SQ-
M)I5(=$WM*+ZTYK6$O6+M*,DIP>*=>+A45JD=)+]5WB^C^3U3-JBL?[%XW_Z#
M=E_X#'_&C[%XW_Z#=E_X#'_&O>.PV**Q_L7C?_H-V7_@,?\ &C[%XW_Z#=E_
MX#'_ !H V**Q_L7C?_H-V7_@,?\ &C[%XW_Z#=E_X#'_ !H V*S/&>BZKXC\
M*W^@:)KO]F75Y:M#%?B#S3!N&"P7<N3@G'(P<'MBHOL7C?\ Z#=E_P" Q_QH
M^Q>-_P#H-V7_ (#'_&L<10IXFA.C4ORR33LVG9JSLTTT_---;IW+IU)4JD9Q
MW336B>WD]'Z/0^?_ /AW7_U6'_RW_P#[HJG!^P%YVMSZ-_PMG'DPK)YG]@]<
M]L>?7T9]B\;_ /0;LO\ P&/^-9EK:^*3XINHX]4MA<"VC,DA@.TKDX %?EO_
M ! [PN_Z%_\ Y5K_ /RP^P_XB#Q?_P!!/_DE/_Y \2_X=U_]5A_\M_\ ^Z*^
MA?!FBZKX<\*V&@:WKO\ :=U9VJPRWY@\HS[1@,5W-@X SR<G)[XJ+[%XW_Z#
M=E_X#'_&C[%XW_Z#=E_X#'_&OIN&> .$N#J]2MD^'=*51)2_>5))I.ZTG.2N
MNCM=7:O9L\G-N)<ZSVG&&.J\ZB[KW8JWSC%/Y;&Q16/]B\;_ /0;LO\ P&/^
M-'V+QO\ ]!NR_P# 8_XU]D>$;%%8_P!B\;_]!NR_\!C_ (T?8O&__0;LO_ 8
M_P"- &Q16/\ 8O&__0;LO_ 8_P"-'V+QO_T&[+_P&/\ C0!L45C_ &+QO_T&
M[+_P&/\ C1]B\;_]!NR_\!C_ (T ;%%8_P!B\;_]!NR_\!C_ (T?8O&__0;L
MO_ 8_P"- &Q16/\ 8O&__0;LO_ 8_P"-'V+QO_T&[+_P&/\ C0!L45C_ &+Q
MO_T&[+_P&/\ C1]B\;_]!NR_\!C_ (T ;%%8_P!B\;_]!NR_\!C_ (T?8O&_
M_0;LO_ 8_P"- &Q16/\ 8O&__0;LO_ 8_P"-'V+QO_T&[+_P&/\ C0!L45C_
M &+QO_T&[+_P&/\ C1]B\;_]!NR_\!C_ (T ;%%8_P!B\;_]!NR_\!C_ (T?
M8O&__0;LO_ 8_P"- &Q6;XQ_Y%B]_P"N!J'[%XW_ .@W9?\ @,?\:H^);3Q:
MF@W3WVK6KQ"(^8B6Y!(]C0!T&G?\@^#_ *XK_(5-6%96?C0V<1BUFS"^4NT&
MV.0,?6I?L7C?_H-V7_@,?\: -BBL?[%XW_Z#=E_X#'_&C[%XW_Z#=E_X#'_&
M@#8HK'^Q>-_^@W9?^ Q_QH^Q>-_^@W9?^ Q_QH V**Q_L7C?_H-V7_@,?\:/
ML7C?_H-V7_@,?\: -BBL?[%XW_Z#=E_X#'_&C[%XW_Z#=E_X#'_&@#8HK'^Q
M>-_^@W9?^ Q_QH^Q>-_^@W9?^ Q_QH V**Q_L7C?_H-V7_@,?\:/L7C?_H-V
M7_@,?\: -BBL?[%XW_Z#=E_X#'_&C[%XW_Z#=E_X#'_&@#8HK'^Q>-_^@W9?
M^ Q_QH^Q>-_^@W9?^ Q_QH V**Q_L7C?_H-V7_@,?\:/L7C?_H-V7_@,?\:
M-BBL?[%XW_Z#=E_X#'_&C[%XW_Z#=E_X#'_&@#8HK'^Q>-_^@W9?^ Q_QH^Q
M>-_^@W9?^ Q_QH V**Q_L7C?_H-V7_@,?\:/L7C?_H-V7_@,?\: #Q+_ ,A?
M1_\ K]/_ *":V*YJ_@UV'6=+.L7T$P-Y^[$,6W'RG.:Z6@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ KA?VE/V<OA3^UI\%=:_9_^->D
MWMYX;UTVSWD>FZM<6%Q'+;7,5U;S17%LZ2Q21SP0R*RL.8QG(R#W5% 'R#:?
M\$C/!/B[XCZ_?_M)_M _$+XI^"-2;0YK?P1XQUJW:UO9M-\UH?[3-K;02:E'
M'(R.D5P\B,RYE64A2/ICXN_#.'XN_#K4OAI<>,=:T&TU:T>UO;SP[-#%=&W=
M"CQI)+%)Y>Y6(W( XZJRGFNFHH \<_8?_8B^%G_!/[X)V7[.GP)\3^)YO!>D
MM(="T3Q%J<=XNF>;/+/,(9?*67:\LSL5=W /W0N3FG\3_P!@SX6^/?B[KGQW
M\&^/?&GP\\5^+=%M](\;ZM\/=;CL7\1V4 86Z70DBE EB5W2.ZA$5S&CE5F"
M@ >WT4 <9\)/V>?@G\"O@GIG[./PI^&NEZ1X'TC2VTZR\-QP>9;_ &9]WF)(
M)-QF,A=VD:0LTC.[.6+$GR#P5_P2Q_9I\&KX2\,2ZOXOUKP+\/=;76/A[\,-
M?U\7.@^';U&9H)88O+$TX@+L8(KJ:>*W^4Q)&40K])44 %%%% 'Q1_P5H^&_
M_"P_B-\'_MMOOT_3/[<NKW(X;!T[9&?]YNWH&KR:OTPHK\D\5/#?-_%'%8+Z
MQF?LJ&$IRITJ:I<RCSU)5)R;]K&\IRE9OE7NQ@M;7/J^",_RS@EXRK0PG/6Q
M4XSJ3Y[-\E.-.$4N1^[%1NE?XI2?4_,^N _:0^&__"P_AS<?8K??J&F9NK+
M^9L#YXQ_O+V]0M?>O_!.K_DA^K_]CWK'_H^O>J^3X(\#\WX XNP/$65YQ:OA
M:D:D?W&CL]8R_??#.-X276,FCVN+>-LLXSX:Q>1YA@+T<1"4)?O-5=:27[OX
MHNTHOI))A1117]#GYT%%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110!C^)?^0OH_\ U^G_ -!-;%8_B7_D+Z/_ -?I_P#036Q0
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 5C^!_\ D$2_]?LW_H5;%8_@?_D$2_\ 7[-_Z%0!L4444 %%%% !1110
M 4444 %%%% !1110 4444 4/%'A?0/&OAV\\)^*=*BO=.U"W:&[M9URLB$<C
MV/<$<@@$<BO%/A-XGU_]F7Q_:_LV?%#59;KPYJ3D?#KQ-=-U7/\ R#9VZ"1<
M@(>XP!C*J/>JYGXO?"?PC\:_ EYX!\9VA>VN0&AGCXEM9E^Y-&W\+J>0>XR#
MD$@_.9[E.)Q%2&89>U'%4D^6^D:D7K*E/^[+H]7"5I*^JEPXS#5)M5J.E2.W
M9KK%^3Z/H]>Z?345XY^S[\6?%VC>)Y_V:_CM=C_A+=(@\S2-6;A/$-@,[;A"
M>LJ@8=>O!/)#8]CKOR?-L-G."6(I)Q=W&49:2A-?%"2Z2B_DU9IM--[87$PQ
M5+GCIT:>Z:W3\U_P5H%%%%>H= 4444 %%%% !6/9?\CO>_\ 7E%_,UL5CV7_
M ".][_UY1?S- &Q1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !6;XQ_Y%B]_P"N!K2K-\8_\BQ>_P#7 T 7-._Y!\'_
M %Q7^0J:H=._Y!\'_7%?Y"IJ "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** ,?Q+_R%]'_Z_3_Z":V*Q_$O_(7T?_K]
M/_H)K8H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH \%_X)U?\D/U?_L>]8_\ 1]>]5X+_ ,$Z
MO^2'ZO\ ]CWK'_H^O>J "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** ,?Q+_P A?1_^OT_^@FMBL?Q+_P A?1_^OT_^
M@FMB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ K'\#_\@B7_ *_9O_0JV*Q_ _\ R")?^OV;_P!"H V**** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@#@/V@O@99_&GPS =-U-M)\2Z+/]
ML\+Z_#Q)8W(P1DCDQM@!EYR,'&0*I_LZ_'.\^)UA?>"_'VF+I'CCPTXM_$NC
MMQEOX;F+^]#(,$$9QG&2"I;TNO*/VB?@MXCUZ_L?C;\&98[/QYX;0_8RW$>K
M6O5[&?IN5AG:3]UCU&=R_(YQ@L5EF-><Y=!RE9*M37_+V"VE%?\ /VFOA_GC
M>F_L./FXFE4P]7ZU05W]J*^TNZ_O+IW6G:WJ]%<;\#?C3X<^.7@B/Q5HL,EI
M=P2FVUG2+GB?3KM.)(9 0#D'H<#(P<#D#LJ^DP.-PF982&*PTU.G-)Q:V:?]
M:K=/1ZG=1JTZ])5*;O%ZIA11174:!1110 5CV7_([WO_ %Y1?S-;%8]E_P C
MO>_]>47\S0!L4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 5F^,?^18O?\ K@:TJS?&/_(L7O\ UP- %S3O^0?!_P!<
M5_D*FJ'3O^0?!_UQ7^0J:@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@#'\2_\A?1_^OT_^@FMBL?Q+_R%]'_Z_3_Z
M":V* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** /!?^"=7_)#]7_['O6/_ $?7O5>"_P#!.K_D
MA^K_ /8]ZQ_Z/KWJ@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@#'\2_\ (7T?_K]/_H)K8K'\2_\ (7T?_K]/_H)K
M8H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH *Q_ __((E_P"OV;_T*MBL?P/_ ,@B7_K]F_\ 0J -BBBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** /#_CEX!\5?!_QO)^U+\%-+>Y
MF$2KX[\,P<+K%FO6=!VN(QD@]P/]X/ZO\/O'WA7XH>#K#QWX*U1+S3=1@$EO
M,O4=BK#^%E.5*GD$$5LU\^>+M,U#]C/XA7'Q3\*V4LOPU\17@/BW1[9"W]AW
M3D 7T*CI$QP'4=.,?P!?B<9&7"6-GCZ:_P!CJN]:*_Y=3>]:*_DE_P ODMG^
M]_Y^7\FJGEM5UH_PI.\E_*_YEY/[2Z?%W/H.BH-,U+3]9TZ#5])O8KFUNH5E
MMKB!PR2QL,JRD<$$$$&IZ^UC*,XJ47=,]5--704444QA6/9?\CO>_P#7E%_,
MUL5CV7_([WO_ %Y1?S- &Q1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !6;XQ_Y%B]_ZX&M*LWQC_R+%[_UP- %S3O^
M0?!_UQ7^0J:H=._Y!\'_ %Q7^0J:@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@#'\2_\ (7T?_K]/_H)K8K'\2_\
M(7T?_K]/_H)K8H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBO'/VD?VSO!OP ^(_@OX":+X*UCQK\2?B(;U_"7@GP_);QS2VU
MI&)+J^N9[F6.&UM8@R!G=BS,X2-)&^6@#V.BOEW]B+_@HOX@_:1D^'O@+XT?
MLV>)O 7BOX@?">W\=:#J!>UO-!UFR\JR-S]DN89WDCDC>_@S!<1QR!9%/S#F
MK7[=O_!3'PW^Q#XKT#X>Z1^RE\9_C-XEUS3YM1N/#OP3\$-KEWH]BD@B2ZO$
M61/(BED\R.-CG>T$H'W#0!],45XW^SA^V/I?QN_9@NOVJ_BG\$/'GP5T6PCO
M[G4M(^,>CQZ1J5A96@8RWEQ!YCF"'"2,"Y!*)OQM92?+M#_X*T>!V\">"_VB
MOB'\!/%WA'X+?$76;33?"/Q2UV>T6(_;'V6%[?6:RF>PLKMM@AGD!QYT1F2
M/D 'UK1110 4444 >"_\$ZO^2'ZO_P!CWK'_ */KWJO!?^"=7_)#]7_['O6/
M_1]>]4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 8_B7_ )"^C_\ 7Z?_ $$UL5C^)?\ D+Z/_P!?I_\ 036Q0 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 5C^!_^01+_ -?LW_H5;%8_@?\ Y!$O_7[-_P"A4 ;%%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %0ZEINGZQI\^DZM917-K=0M%<V\\8
M9)48896!X(()!!J:BE*,9Q<9*Z8FDU9GSYX2U+4/V,OB#;_"_P 4WLLOPT\1
MWI7PGJ]RY8:%=N2QL9G/2)CDHQZ<Y_C(^@ZQ_'_@+PK\3_!]_P"!/&NEI>:;
MJ,!BN(7ZCN&4_P +*<,&'((!KR;X'>/O%7P<\<1_LM?&K57N9!$6\!^)[C@:
MQ9KTMW/:XC&!C^( ?[)?XK"2EPEC88&H_P#8ZKM1D_\ EU-[49/^23_@M[/]
MT_\ EW?RJ3>6U51E_"D_=?\ *_Y7Y/[/;X>Q[C1117VQZP5CV7_([WO_ %Y1
M?S-;%8]E_P CO>_]>47\S0!L4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 5F^,?^18O?\ K@:TJS?&/_(L7O\ UP-
M%S3O^0?!_P!<5_D*FJ'3O^0?!_UQ7^0J:@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#'\2_\A?1_^OT_^@FMBL?Q
M+_R%]'_Z_3_Z":V* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ KX/\ ^"N?[#'[8WCOXP_#+_@H_P#\$W_%&E#XT?!FTO[./P7X
MC8+I_B_1[H SV#.S*L<GWPNYD!\S/F1O&C5]X5X'\;_VCOCG\ OVG]-M=5_9
M\\:>*_A#K?@Y5N/$O@?0UU6?0-<BNI2PGLK<M>RPS6\D?SQ12A&@4!1O<@ ^
M:O\ @@S_ ,%)/V4_VU_V??AW\"(M$O/"_P 9_@U\,--T;4_"'BFW,%\=/%E9
MQ'4;,G'VBTN!%;29 W)NCW* T;R9W[:7[!7_  6)^&G[37Q _P""A7_!.G]N
MS0]6U?Q!#8FZ^!OB_P #PIIVHZ?I\3K;Z=%>M*[[OWD[#'V?,MS*WFQ[SCC/
M^"?/[,/B[]I[]IC]CK]N+PI\&M6\&>%O@A^S):Z)KWC+7]-^P7/CJ^O-$@M8
M+*"W?$\MG:*\\XNI56-WE41>8OSCZC\(_P#!1O\ :*UCXE>,?@WXE_X)4_&W
M3]>T+7KJR\,:G;+I\WA_Q!:(Y6"]&JRSPQ6RNH$CH0[1JV%\UP4H ^)O^"K/
M_!3'4?VV?^#8GQC^TWX-\*7O@_7/$NI:?X5\=>'97;SM$O8M9@@U"T+$ E'\
MLJ-P#&*X 8!L@?1__!:#X=>%=(_X-YOB5\//LD7]FZ'\(M(CL(MHVH;.2R:W
MQV&'BC(^@KH/%O\ P2$TOXG?\$H?B9^P3X\\1Z;%XI^+&H:UXK\1:YI\3FQM
M/%-_J;:LCPJ0'-K;W0@B7A7>& $A6<@>8?M(>#?VP_V]?^"97AS_ ()?:I^S
M_P"+O!_Q)\166@^'/B_XNUC2BFA:!86%Q;/?ZG;7Q/D:D+E;4BW@MVDD_P!)
M'G"'8Y !]C_\$Z?'WB?XK?\ !/KX%?%#QM=2SZSXC^#GAG5-7GG)+RW5QI5M
M+*[$\DEW8\\\U[)6-\.? /AGX5?#W0?A?X*L?LNC>&]&M=*TBVW9\FUMXEAB
M3/?"(H_"MF@ HHHH ^>?^"?.OZ-I?P5U:WU#48XG/CG5V"N><>?U_2O=/^$Q
M\,?]!J#_ +ZKQ/\ X)WVEK/\$=7>:VC<_P#"=:N,L@)_U]>\?V=I_P#SXP_]
M^A0!3_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,
M/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?
M_P ^,/\ WZ% %/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^
MA1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/
M_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG_P#/
MC#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?
M_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^
M^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J
M#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\
M0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\
MOJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T
M&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!S^O>)=!N
M=3TR:#5(F6&Z+2L#]T;>IK4_X3'PQ_T&H/\ OJJGB.RLTU7252TB :\(8",<
MC::U_P"SM/\ ^?&'_OT* *?_  F/AC_H-0?]]4?\)CX8_P"@U!_WU5S^SM/_
M .?&'_OT*/[.T_\ Y\8?^_0H I_\)CX8_P"@U!_WU1_PF/AC_H-0?]]5<_L[
M3_\ GQA_[]"C^SM/_P"?&'_OT* *?_"8^&/^@U!_WU1_PF/AC_H-0?\ ?57/
M[.T__GQA_P"_0H_L[3_^?&'_ +]"@"G_ ,)CX8_Z#4'_ 'U1_P )CX8_Z#4'
M_?57/[.T_P#Y\8?^_0H_L[3_ /GQA_[]"@"G_P )CX8_Z#4'_?5'_"8^&/\
MH-0?]]5<_L[3_P#GQA_[]"C^SM/_ .?&'_OT* *?_"8^&/\ H-0?]]4?\)CX
M8_Z#4'_?57/[.T__ )\8?^_0H_L[3_\ GQA_[]"@"G_PF/AC_H-0?]]4?\)C
MX8_Z#4'_ 'U5S^SM/_Y\8?\ OT*/[.T__GQA_P"_0H I_P#"8^&/^@U!_P!]
M4?\ "8^&/^@U!_WU5S^SM/\ ^?&'_OT*/[.T_P#Y\8?^_0H I_\ "8^&/^@U
M!_WU1_PF/AC_ *#4'_?57/[.T_\ Y\8?^_0H_L[3_P#GQA_[]"@"G_PF/AC_
M *#4'_?5'_"8^&/^@U!_WU5S^SM/_P"?&'_OT*/[.T__ )\8?^_0H I_\)CX
M8_Z#4'_?5'_"8^&/^@U!_P!]5<_L[3_^?&'_ +]"C^SM/_Y\8?\ OT* *?\
MPF/AC_H-0?\ ?5'_  F/AC_H-0?]]5<_L[3_ /GQA_[]"C^SM/\ ^?&'_OT*
M *?_  F/AC_H-0?]]5E^$O$N@V.F20W>J11L;J5@K'L6X-=!_9VG_P#/C#_W
MZ%9'@NRLY=*D:6TB8_;)1EHP>-U %O\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^
M^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J
M#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\
M0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\
MOJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T
M&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_
MT&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\
M,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ%
M%/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_
M 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I_P#S
MXP_]^A0!3_X3'PQ_T&H/^^JXWXX^"/AI\<O \GA/7-?2UNH91<Z/JULQ$^G7
M:<QSQD8((/49&1D9'!'??V=I_P#SXP_]^A1_9VG_ //C#_WZ%<N-P6%S'"3P
MN)@ITYIJ2>S3_K?=/5:F=6E3KTW3J*\7HT>0?L\?M$W6LR7GP@^--[;V?C7P
M\H6YE0XAU>VZ)>PG R&&-PXP3T&=J^I_\)CX8_Z#4'_?5<'^T1\ ?^%G:79^
M+? -U#H_C7PY(;GPWJZ1@ M_%;S<?-#(."#G&<X(+*UG]GSXQ:)\:/#-PFJ>
M'8M)\3:)/]C\4:!-&!)97(R"0#R8VP2K<@C(R2#7S>3XW%97C5DV8S<I6;HU
M'O5@MXR?_/V"^+^>-JB^VH\.%JU,/5^JUW=_9D_M)='_ 'EU[K7O;L_^$Q\,
M?]!J#_OJLNT\2Z"GBV[O7U2(1/:QJDF>"03D5T']G:?_ ,^,/_?H5D6=E9GQ
MG>Q&TBVBSC(7RQ@')KZX](M_\)CX8_Z#4'_?5'_"8^&/^@U!_P!]5<_L[3_^
M?&'_ +]"C^SM/_Y\8?\ OT* *?\ PF/AC_H-0?\ ?5'_  F/AC_H-0?]]5<_
ML[3_ /GQA_[]"C^SM/\ ^?&'_OT* *?_  F/AC_H-0?]]4?\)CX8_P"@U!_W
MU5S^SM/_ .?&'_OT*/[.T_\ Y\8?^_0H I_\)CX8_P"@U!_WU1_PF/AC_H-0
M?]]5<_L[3_\ GQA_[]"C^SM/_P"?&'_OT* *?_"8^&/^@U!_WU1_PF/AC_H-
M0?\ ?57/[.T__GQA_P"_0H_L[3_^?&'_ +]"@"G_ ,)CX8_Z#4'_ 'U1_P )
MCX8_Z#4'_?57/[.T_P#Y\8?^_0H_L[3_ /GQA_[]"@"G_P )CX8_Z#4'_?5'
M_"8^&/\ H-0?]]5<_L[3_P#GQA_[]"C^SM/_ .?&'_OT* *?_"8^&/\ H-0?
M]]4?\)CX8_Z#4'_?57/[.T__ )\8?^_0H_L[3_\ GQA_[]"@"G_PF/AC_H-0
M?]]4?\)CX8_Z#4'_ 'U5S^SM/_Y\8?\ OT*/[.T__GQA_P"_0H I_P#"8^&/
M^@U!_P!]4?\ "8^&/^@U!_WU5S^SM/\ ^?&'_OT*/[.T_P#Y\8?^_0H I_\
M"8^&/^@U!_WU1_PF/AC_ *#4'_?57/[.T_\ Y\8?^_0H_L[3_P#GQA_[]"@"
MG_PF/AC_ *#4'_?5'_"8^&/^@U!_WU5S^SM/_P"?&'_OT*/[.T__ )\8?^_0
MH I_\)CX8_Z#4'_?59_BCQ1X?O/#]W:VNJQ/(\1"(IY)K<_L[3_^?&'_ +]"
ML[Q=8V4?AJ\>.SB5A"<%8P"* "Q\7>&H[*&-]9A#+$H()Z'%2_\ "8^&/^@U
M!_WU4VGZ?8-80$V4))A7),8]!4W]G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_
MX3'PQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&
MH/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'
MPQ_T&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3
M'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_
M^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\
MWZ% %/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\
M^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I
M_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG_P#/C#_WZ%']
MG:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^,/\
MWZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I_
M_/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J#_OJKG]G
M:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY
M_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 8>JZUI6K:QI2Z=?),4O,N$/3*FNBK#
M\06UO!J^D&"W1,WASL0#/RFMR@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** (--TW3M%TZWT?1]/@M+2T@2&UM;:(1QPQJ
MJHBJ %4   #@ 8J>BB@ HHHH **** "BBB@#P7_@G5_R0_5_^Q[UC_T?7O5>
M"_\ !.K_ )(?J_\ V/>L?^CZ]ZH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH Q_$O_(7T?_K]/_H)K8K'\2_\A?1_
M^OT_^@FMB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ K'\#_ /((E_Z_9O\ T*MBL?P/_P @B7_K]F_]"H V****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KQS]H
M/X3>+M(\2V_[2?P)M1_PEVCP;-6TI>(_$-@,;K=P.L@ RC=<@#DA<>QU0\5>
M)M'\%^&=0\7^(;KR;#2[*6ZO)<9VQQJ68@=S@'CO7D9YEN"S/+I4\3+D4?>4
MT[2IRCJIQ?1QW[-733BVGS8NA2Q%!QJ.UM4^L6MFGW7_  ^AS'@;]H3X5^-_
MA9!\7T\5V>G:0PVWDFJ7*0&RG'#P2[B K@\8[\$9!!/#6O[</[*L?CJZ1_C!
M9A9($C27[%<^66!Y^?R]N/?.*_/3XS?$Z?XM?$C6_'2:1#IEOJVI/=)IEIQ%
M&2 NXCH9" "SX^9B3QG%<K7\KYC](W/J-14<%AZ4U#1SDI_O+.W/&*E'D4M^
M5N35[7/SNOQQC(R4:4(NVC;O[WFE=6OVUL?LIX9\5^&/&NCQ>(?"'B&RU2PF
M_P!5>:?<K-&V.H#*2,CN.U:%?DY^SI^T7XZ_9S\=0>)_"][))822*-7TAI"(
M;V'/((Z!P,[7ZJ?4$@_JGX4\3:/XT\,:=XO\/7/G6&J645U9RXQNCD4,I(['
M!&1VK]Q\-/$O!>(."J?N_98BE;GA>ZL]I1>ET[6:>L7H[W3?UV0Y]2SJD].6
M<=U^J\OR-"BBBOTX]\**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "LWQC_P BQ>_]<#6E6;XQ_P"18O?^N!H N:=_R#X/^N*_R%35
M#IW_ "#X/^N*_P A4U !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %4/$WBKPSX+T>7Q#XO\0V6EV$/^MO-0N5AC7T!9B!D
M]AWH\5>)M'\%^&=0\7^(;KR;#2[*6ZO)<9VQQJ68@=S@'CO7Y5_M&?M&>.?V
MC?'4WB?Q/>R16$4C+H^D+(3%90YX '0N1C<_5CZ  #\Q\2_$O ^'V!I_N_:X
MBK?DA>RLMY2>MDKZ):R>BM9M>!GV?4LEI+3FG+9?J_+\S[TUW]N']E6[\1:;
M96_Q@LV:"\)ED^Q7/EJ,8SYGE;,9[YKU_P ,^*_#'C71XO$/A#Q#9:I83?ZJ
M\T^Y6:-L=0&4D9'<=J_&NO0?V=/VB_'7[.?CJ#Q/X7O9)+"211J^D-(1#>PY
MY!'0.!G:_53Z@D'\:X>^D=CYYE&GG6%@J,G9RI\RE!=VI2ES)=4N5VVN]'\M
M@N.:SKI8JFN1]8WNO.S;O^!^L=%9_A3Q-H_C3PQIWB_P]<^=8:I9175G+C&Z
M.10RDCL<$9':M"OZPIU*=:G&I3=XM)IK9I[-'Z/&49Q4D[IA1115C"BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@#P7_@G5_R0_5_^Q[UC_P!'U[U7@O\ P3J_Y(?J_P#V/>L?^CZ]ZH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH Q
M_$O_ "%]'_Z_3_Z":V*Q_$O_ "%]'_Z_3_Z":V* "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "L?P/_R")?\ K]F_
M]"K8K'\#_P#((E_Z_9O_ $*@#8HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "O(_V[_[1_X9+\9_V7N\W[%!NVYSY?VF'S.G
M;9NKURJ'BKPSH_C3PSJ'A#Q#:^=8:I92VMY%G&Z.12K 'L<$\]J\G/LOJ9MD
M>*P,)<LJM.<$^SE%Q3^5SFQE&6)PE2DG9RBU]ZL?C517H/[1G[.?CG]G+QU-
MX8\3V4DMA+(S:/JZQD17L.>"#T#@8W)U4^H()\^K_,[,<NQV48ZI@\93<*L'
M:47HT_ZV>S6JT/P6O0K8:M*E5C:2T:85][_LG?M#?$+P)^SSX9\/WW[-GCC6
M[6UM)1;ZOHMI'.EQ$9Y&0JI8-@*0OOMX[5\D_LZ?LZ>.OVC/'4'ACPO921V$
M<BG5]7:,F&RASR2>A<C.U.K'T )'ZI^%/#.C^"_#&G>$/#UMY-AI=E%:V<6<
M[8XU"J">YP!D]Z_H3P#X4S_$8G$YO1K2P]/E]G&7+&7.W)-I*:::CRJ[5M79
M/XD?:\&Y=C)U)XF,G"-N5.R=]4WOT5M_^">3?\-L:!:<:_\ L_?%72\?>-[X
M+<*/Q5SD>]'_  WY^SC:_P#(?U;7-) ^\=1\,7B[?KMC:O::*_IC^S>+Z?\
M#S"F_P#'A[_^D5J9][[#,UM6C\X7_*2/)=._;I_9.U3'V;XSV"Y_Y^;6XA_]
M&1BM[3OVHOV;]4(%I\=?"F3T6;78(R?P=A76ZCX4\+ZOG^UO#=A=9Z_:+-'S
M_P!] U@ZC\ O@5J^?[4^"_A2X)[S>';9C^93-'LN.*?_ "^PT_\ N'5A_P"Y
M:@<N;1^U!_\ ;LE_[=(OZ=\4_AAJ^/[)^(^@W6[I]GUB!\_]\L:VK:[M;R/S
MK2YCE3^]&X8?F*\XU']CG]E[5,_:?@AH*YZ_9K7R?_19%8MS_P $_P#]DZ63
M[1:?#![.7M+9:Y>QD?@)L?IVH^L<;T]\-AY_]QZD/P^KS_,.?-H_\NX/_M^2
M_P#;&>RT5XM_PPK\*;7_ ) 'CCQWI./N_P!G>+YUQ]-V[_)H'['NL6'.@?M8
M_%>#^ZEWXF6Y5?H&C''2C^U>*J?\3+4_\%>+_P#2X4P^L9BMZ"^4T_S2/::*
M\6_X9R_:&L/^1?\ VU/$,>/N_P!H^'+2[_/=C-'_  JS]M?3?^/+]JK1-3QT
M_M'P-##GZ^4W^<T?ZPYO#^)E-?U4L/)?^GT__)0^NXE?%AI_)P?_ +??\#VF
MBO%O[+_X*!Z;_P >GBCX5ZF!_P _UE?PD_\ ?LXS_A1_PE?[>>F\7OPG^'^I
M8Z_V=KUQ#GZ>:*/]:XP_BX+$Q_[A.7_IMS#^T4OBI37_ &[?\KGM-%>+?\+J
M_; T[_D*?L91W2C[TNG>/K/]$9<G_P"M1_PU!\7;#C7_ -C?QO'C[W]G36]W
M^6UAFC_7/)(_Q(UH?XL-B(_BZ27XA_:N$7Q*2]:<U^<3VFBO%O\ AM/3K3C7
M_P!F_P"+.G8^])<>#"4_!ED.?RH_X;W^ -K_ ,A__A)=*_O#4?"UTNWZ[4:C
M_7CA)?'C(0_QOD_]+2#^U\M6]5+UT_.Q[317D6G?MY?LE:H0+;XRV:Y_Y^+"
MZA_]&1"MW3OVK?V:=4 -M\=?"RYZ?:-9BA_]&,*ZZ'%G"N)_@X^C+TJP?Y2-
M(9EEU3X:T'Z27^9Z!17.Z=\7OA/K! TGXH>';K/3[-K<#Y_[Y<UN66HZ?J,?
MFZ??PSKC[T,H8?H:]BCB\)B?X52,O1I_D=4*E.I\,D_1DU%%%=!85YG\:_VE
M_@/\-K&\\.>,OB?IEKJ/EE6L(G:>=#Z.D09D_P"! 5Y3_P %&OVKM=^$6D6G
MPD^'.IO::WK-J9]0U"%L26=H6*J$/\+N5<;NJA3CE@1^?TDDDTC2RN69B2S,
M<DD]237\^^)/C>N$\TEE6548U:T+<\IM\D6U?E2BTY.SU]Y);:N]OB\]XL66
MXAX?#Q4I+=O9>6F[[ZZ'ZP_"W]I_X _%.2WT/P-\4M,N[YHU6.QE=H)Y#CD)
M',JL_P" ->A5^+D<DD,BRQ.592"K*<$$="#7Z _\$Y?VK=>^+FD7?PC^(VIO
M>:WHUJ+C3]0F;,EY:!@K!S_$Z%D&[JRL,\J23PV\;UQ9FL<JS6C&E6G?DE!O
MDDTK\K4FW%VV?,T]M':YD7%BS+$+#XB*C)[-;/RUV?;74^HJ***_H(^T"BJN
MH:YHND+NU76+6U &2;BX5/YD5@:E\<O@IHV?[7^,'A:UQU%SX@MDQ^;URU\=
M@<+_ !JL8^LDOS9G.M1I_')+U9U-%>;:E^V#^S!I6?M7QP\/MC_GVO1-_P"B
M]U8=S^W_ /LGPR_9[3XG/>2]HK+0[V0G\1#C]:\:MQCPEAW:KF%"+\ZM-/\
M]*.6>9Y;#XJT%_V\O\SV6BO%O^&Z/AC=_P#(N_#WQ_J^?N_V;X/G;=]-VVC_
M (:[\3ZC_P B[^R1\4IL_=.H:"EH#^+2'BN?_7?A:7\/$J?^",I_^D1D1_:V
M7/:I?T3?Y)GM-%>+?\-!?M-:C_R+W[%&JN#T;4_&%G:8]R&!_*C_ (6'^W%J
M?_'C^SOX5TO/3^TO%OGX^ODKS3_UQRN7\*EB)^F&Q%OO=-+\0_M3#OX8S?\
MW#G^;BD>TT5XMC_@H/J9^]\)=,C/H-1FD'_LM'_"NOVX=3_X_OVC/"^F9Z_V
M;X0$V/\ OZU+_6>O/^%EV)E_VY"/_IRI /[0F_AH3?R2_P#2I(]IHKQ;_AGO
M]I?4/^1A_;7U>3/WAIOA&SM/RVDXH_X9"\1ZASXB_:V^*DV?O+8>($M5/MA8
MSQ1_;G$%3^'E51?XZE!?^D5*@?6\:_AP\OG*"_*4CVFHKJ]L[&/SKV[BA3^_
M+(%'YFO&_P#AA;X6W?\ R,7CSQYJ_P#>_M+Q?.V[Z[=M2VO[ '[)T$OVBY^%
M[7<W>6]UN]E)^H,V/TH^O\95/@P-&/\ BQ$E^$</+\P]MFDMJ,5ZS?Z09Z'J
M7Q<^%.C9_M?XG>'K7'7[3K4$>/\ OIQ7/ZE^U?\ LT:5DW7QU\+MC_GVUB*;
M_P!%EJ@TW]D#]F'2L?9?@=X>;'_/S8B;_P!&;JZ#3?@A\%M&P=(^$/A>UQT^
MS:!;)C_OE!1?CBITPT/G5G^E,/\ A6E_(O\ P)__ ")P^H?M[_LE:<WER?%^
MWE<G"I:Z9=S%CZ#9$15;_AO'X)W?_(NZ-XOUC/W?[-\)W+;OIN5:]@T_1='T
ME=FE:3;6PQC%O J#]!5FCZEQI4^/&T(_X</._P!\L0U_Y*'LLUEO5@O2#_6;
M_(\6_P"&R+F_^7P[^RS\6;S/W99?"@AC;Z,TG]*/^&D?C]J'_(O?L7>)9<_=
M_M+7;6T_/=G%>TT4?V+Q%4_B9I-?X*5%?^EPJ!]4QLM\0UZ1BOS4CY3_ &KO
MB-^U?XD_9Z\3V7B?]G&S\-:3)9Q_;[T>+X;V:*(31EL)$HW9Z'T!)KX'K]E?
M%7AG1_&GAG4/"'B&U\ZPU2REM;R+.-T<BE6 /8X)Y[5^5?[1G[.?CG]G+QU-
MX8\3V4DMA+(S:/JZQD17L.>"#T#@8W)U4^H()_F?Q\X0SG"8C#9M*M4Q%+E]
MG*<U"\&I-J_LX4XJ,N9V?+NK-ZQ1\%QEEF*I3IXERE.-K-NVFMU\*2L[]M_D
M>?445Z#^SI^SIXZ_:,\=0>&/"]E)'81R*=7U=HR8;*'/))Z%R,[4ZL?0 D?S
MWEV78[-\=3P>#IN=6;M&*U;;_K5[):O0^*H4*V)K1I4HWD]$D?H-^P?_ &C_
M ,,E>#/[4W>;]CGV[LY\O[5-Y?7MLV_A7KM9_A3PSH_@OPQIWA#P];>38:79
M16MG%G.V.-0J@GN< 9/>M"O],<AR^IE.187 U)<TJ5.$&^[A%1;^=C]ZP="6
M&P=.BW=QBE]RL%%%%>L=(4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 >"_P#!.K_DA^K_ /8]ZQ_Z/KWJO!?^
M"=7_ "0_5_\ L>]8_P#1]>]4 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 8_B7_D+Z/\ ]?I_]!-;%8_B7_D+Z/\
M]?I_]!-;% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !6/X'_ .01+_U^S?\ H5;%8_@?_D$2_P#7[-_Z%0!L4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!
M0\3>%?#/C31Y?#WB_P /66J6$W^ML]0MEFC;T)5@1D=CVKQ^U_8>_95D\=W3
MO\'[,K';I(D/VVY\L,3S\GF;<>V,5[?6/9?\CO>_]>47\S7DYAD.19M4C/'8
M6G5E'9SA&;7HY)V.:M@\)B9)UJ<9-=TG^98\,^%/#'@K1XO#WA#P]9:780_Z
MJST^V6&-<]2%4 9/<]ZT***].G3IT::ITXI16B25DEV2.B,8PBE%62"BBBK&
M%%%% !1110 4444 %%%% !1110 4444 %%%% %/4?#V@:N"-6T.SN@>HN+9'
MS_WT#6%J/P-^"FL9_M;X/^%KK/7[1X?MGS^:5U-%<E? 8'$_QJ49>L4_S1G.
MC1J?%%/U1YQJ/[(7[,6J BY^!WAU<_\ /OIZP_\ HO%8=[^P%^R5>/YR_"9+
M>3^&2TUB\B*_0+,!^E>QT5Y%;@_A+$ZU<OH2]:5-_P#MIRRRS+9_%1@_^W5_
MD>+?\,(_!NUYT#Q)XSTDC[IT[Q;<+CZ;BU'_  QO=6//A_\ :G^+5IC[L<OB
MP31K]%:/^M>TT5S?ZC\*+X,)&'^"\/\ TAHC^R<N6U-+TNORL?EK^VWX1\2^
M!OVAM4\->)_&NI^(9(+2U-OJVKL#--$T*L < #"L67CT]<UY+7Z!?\%&OV4=
M=^+ND6GQ;^'.F/=ZWHUJ8-0T^%<R7EH&+*4'\3H6<[>K!CCE0#^?TD<D,C12
MH5920RL,$$=017\.^*G"^-X8XQQ,*D'[*K)SIR=VI1D[VYG=MQORN[OI=[IO
M\DXBR^KE^:5%)/EDVXO>Z?F^VSZB5ZS^Q+X2\2^./VAM*\->&/&FI^'I)[6Z
M-QJVD$":&)8'8@9!&&8*O/\ >]<5Y/'')-(L42%F8@*JC))/0 5^@/\ P3E_
M92U[X1Z1=_%SXC:8]GK>LVHM]/T^9<26=H6#,7'\+N50[>JJHSRQ 7A9POC>
M)^,<-"G!^RI2C.I)72C&+O;F5FG*W*K.^MULVCA[+ZN89I344^6+3D]K)>:[
M[+J=S_PQK+?<^(?VH_BS>Y^]$OBWR8S_ ,!6/^M'_#!OP/N_^1AU3Q;J^?O?
MVEXKN6W?7:RU[317]Q_ZC\)R_B82,_\ '>?_ *6Y'ZW_ &3EK^*FGZZ_G<\@
MT[]@K]DK3&WP_!ZVE;J6NM2NYLGU.^4BM_3?V4_V:M)Q]E^!?A9L=#<:-%-_
MZ,5J] HKKH<)<*X7^#@*,?2E!?E$TAEN74_AHP7I%?Y'/Z;\)?A7HV!I'PS\
M/VN.GV;1H(\?]\H*W+:TM+*/R;.UCB3^[$@4?D*DHKV:.%PN&5J,%'T27Y'5
M"G3I_"DO0****W+"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ JAXF\*^
M&?&FCR^'O%_AZRU2PF_UMGJ%LLT;>A*L",CL>U7Z*BI3IUJ;A42<7HT]4UV:
M%*,91LU='B&N_L._LJVGB+3;VW^#]FK3WA$L?VVY\MAC./+\W9C/;%>O^&?"
MGACP5H\7A[PAX>LM+L(?]59Z?;+#&N>I"J ,GN>]5_$O_(7T?_K]/_H)K8KS
M,OR'(LIJ2J8'"TZ4I;N$(P;]7%*YST<'@\-)NC3C%OLDOR"BBBO6.D**** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "O%OV@?\ @H9^
MQY^S#X[TOX9?&/XX:-IVOZG>1P2:1#=+/<Z=');SSI<W<49+VT#);R8D< ,1
MQD!B/::_$;PI^TSXC_X)B?\ !2;6?V8/^"AWAB?PYH?Q$_:YU+XH^!_CQJ3
M:/JVE7FDWME'97-RW$+VWFV<84DK"'<-Y<:QO( ?LU\,_BI\,?C3X,L_B/\
M!WXBZ'XK\/:@I:PUSPYJT-[:7 '!*30LR-@\'!XKB_"'[;O[(WC[XG#X-^"_
MVA_"VI>(Y+VXLK73[35$87=W;@FXMH)?]7<3Q!6\R&-FDCV-O5=IQ\?_ /!9
M7QAIW_!,G_@CM\?OB;^RQJ::1=^/M?-UHUQHX6)+"ZUVYM8+R>W>,\,5>ZN$
MD7!$D@(Z UF?\%1/V>-"^!'_  ;JCPK\,$&@:O\ !3P)X7\0>"-8TX".XTK5
MM,FLY1>1.!\LS_OPS]6\^0G)8T ?I-17G7['_P :;K]I']DOX7?M#WUK'!/X
M\^'>B>(IX(AA8GO;"&Y9 .P!D(Q[5Z+0 4444 >"_P#!.K_DA^K_ /8]ZQ_Z
M/KWJO!?^"=7_ "0_5_\ L>]8_P#1]>]4 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 8_B7_D+Z/\ ]?I_]!-;%8_B
M7_D+Z/\ ]?I_]!-;% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !6/X'_ .01+_U^S?\ H5;%8_@?_D$2_P#7[-_Z
M%0!L4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 5CV7_([WO_7E%_,UL5CV7_([WO\ UY1?S- &Q1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7F?QK_9H^ _
MQ)L;SQ'XR^&&F76H^66:_B1H)W/J\D15G_X$37IE9OC'_D6+W_K@:XL=EV7Y
MI0]CC:,*L/Y9Q4E]TDT95J%#$0Y*L5)=FDU^)Q_PM_9@^ /PLDM]<\#?"W3+
M2^6-6COI4:>>,XY*23,S)^!%>A5#IW_(/@_ZXK_(5-1@<NR_*Z'L<%1A2A_+
M"*BONBD@HT*&'AR4HJ*[))+\ HHHKM-0HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** ,?Q+_R%]'_ .OT_P#H)K8K'\2_\A?1
M_P#K]/\ Z":V* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH *^ OVE_C%^Q'_P5*^$'@+X=_$Q?#.N>&;7X_:GX;^)/A'5=
M70R:3+8:=X@MY#<$%)+8[H%GCE^0@-&ZMT:OOVO)_C1^PQ^R-^T)XTT/XB?&
M#]GCP?KNM^']834K35-1\-6DT\LJP2PJDTDD3-+&%F9MC'&Y$;JHH _)7X0_
ML*_'7]K3_@@'^TY^Q_\ "SQ/KGC/P9H7Q9U>3]E35-9E,MQK?AW2;RVN+:.V
M<@":"9H+F&!QA6>5BNU-H'T+_P %'/VG]&_;!_X(*:)X"^ ]U#KOQ&^/^@>'
M_"7A+P9:S*;Z369+BU&I6LD7WHC9I%>&X9@%A\AMY4<U^G-I:6MA:Q6-C;1P
MP0QK'##$@5(T P%4#@  8 %<YH7P4^#7A?Q]J'Q6\-?"3PQIWBC5TV:KXDL=
M!MX;^]7(.);A$$D@R!PS'I0!G?LQ_!FS_9Q_9M^'O[/6GWHN;?P'X'TGP[!<
MJN!*EE9Q6P?!Z9$6?QKN*** "BBB@#X'^"?_  39^!O[6&@:O\5_B5XT\=6N
MI'Q5J=EY6A>)S;0>7%<OL^38V#AL9SV%=E_PY"_9-_Z*-\4__"V/_P :KZ%_
M9K^#.I_ SP%>^$-5UJ"_DNO$-]J*S6\;*JK/*7"8/< X->@T ?'/_#D+]DW_
M **-\4__  MC_P#&J/\ AR%^R;_T4;XI_P#A;'_XU7V-10!\<_\ #D+]DW_H
MHWQ3_P#"V/\ \:H_X<A?LF_]%&^*?_A;'_XU7V-10!\<_P##D+]DW_HHWQ3_
M /"V/_QJC_AR%^R;_P!%&^*?_A;'_P"-5]C44 ?'/_#D+]DW_HHWQ3_\+8__
M !JC_AR%^R;_ -%&^*?_ (6Q_P#C5?8U% 'QS_PY"_9-_P"BC?%/_P +8_\
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
M7[)O_11OBG_X6Q_^-5]C44 ?'/\ PY"_9-_Z*-\4_P#PMC_\:H_X<A?LF_\
M11OBG_X6Q_\ C5?8U% 'QS_PY"_9-_Z*-\4__"V/_P :H_X<A?LF_P#11OBG
M_P"%L?\ XU7V-10!\<_\.0OV3?\ HHWQ3_\ "V/_ ,:H_P"'(7[)O_11OBG_
M .%L?_C5?8U% 'QS_P .0OV3?^BC?%/_ ,+8_P#QJC_AR%^R;_T4;XI_^%L?
M_C5?8U% 'QS_ ,.0OV3?^BC?%/\ \+8__&J/^'(7[)O_ $4;XI_^%L?_ (U7
MV-10!\<_\.0OV3?^BC?%/_PMC_\ &J/^'(7[)O\ T4;XI_\ A;'_ .-5]C44
M ?'/_#D+]DW_ **-\4__  MC_P#&J/\ AR%^R;_T4;XI_P#A;'_XU7V-10!\
M<_\ #D+]DW_HHWQ3_P#"V/\ \:H_X<A?LF_]%&^*?_A;'_XU7V-10!\<_P##
MD+]DW_HHWQ3_ /"V/_QJC_AR%^R;_P!%&^*?_A;'_P"-5]C44 ?'/_#D+]DW
M_HHWQ3_\+8__ !JC_AR%^R;_ -%&^*?_ (6Q_P#C5?8U% 'QS_PY"_9-_P"B
MC?%/_P +8_\ QJC_ (<A?LF_]%&^*?\ X6Q_^-5]C44 ?'/_  Y"_9-_Z*-\
M4_\ PMC_ /&JX7]IK_@D)^S3\*/@)XI^(OAKQ_\ $F6_TC2VGM8[WQBSQ,P8
M#YE$8)'/J*_0"N._:"^&=]\9?@OXB^%^F:G%97&MZ<UM%=3H62,D@Y(')'%
M'ROX)_X(L?LK:]X,TC7+WXB?%!9KW3+>>58O&A"AGC5C@>5P,FM/_AR%^R;_
M -%&^*?_ (6Q_P#C5?6WA+1I?#GA33/#T\RR/8:?#;O(@P'*1JI(]CBM"@#X
MY_X<A?LF_P#11OBG_P"%L?\ XU1_PY"_9-_Z*-\4_P#PMC_\:K[&HH ^.?\
MAR%^R;_T4;XI_P#A;'_XU1_PY"_9-_Z*-\4__"V/_P :K[&HH ^.?^'(7[)O
M_11OBG_X6Q_^-4?\.0OV3?\ HHWQ3_\ "V/_ ,:K[&HH ^.?^'(7[)O_ $4;
MXI_^%L?_ (U1_P .0OV3?^BC?%/_ ,+8_P#QJOL:B@#XY_X<A?LF_P#11OBG
M_P"%L?\ XU1_PY"_9-_Z*-\4_P#PMC_\:K[&HH ^.?\ AR%^R;_T4;XI_P#A
M;'_XU1_PY"_9-_Z*-\4__"V/_P :K[&HH ^.?^'(7[)O_11OBG_X6Q_^-4?\
M.0OV3?\ HHWQ3_\ "V/_ ,:K[&HH ^.?^'(7[)O_ $4;XI_^%L?_ (U1_P .
M0OV3?^BC?%/_ ,+8_P#QJOL:B@#XY_X<A?LF_P#11OBG_P"%L?\ XU1_PY"_
M9-_Z*-\4_P#PMC_\:K[&HH ^.?\ AR%^R;_T4;XI_P#A;'_XU1_PY"_9-_Z*
M-\4__"V/_P :K[&HH ^.?^'(7[)O_11OBG_X6Q_^-4?\.0OV3?\ HHWQ3_\
M"V/_ ,:K[&HH ^.?^'(7[)O_ $4;XI_^%L?_ (U1_P .0OV3?^BC?%/_ ,+8
M_P#QJOL:B@#XD@_8;^%G[%W[0'PMU;X2^-/&ET_B/Q;]DU*+Q!XC:ZC:*.%W
M "A5 Y/.<]!7VW7GWQC^#.I_$WQ[X \7V.M06L?@[Q"^HW,,T;%KA3$4V*1T
M.3GFO0: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** .9^+WQG^$?[/_@&^^*?QQ^)FA>$?#>FINOM<\1ZI%9VL/H#)
M*P&XXP%'+'@ FMO0->T?Q3H5EXG\/7\=W8:C:1W5C=1'Y9H9%#HX]BI!'UKX
M8_X.5/AG\._&?_!'+XT>*O%G@72-2U70/#UK/H6J7NFQ2W.G2'4[/<T$K*6B
M+;0#M(R!@Y%?4'P8\-7OC3]BGPGX.TWQ/>Z)<ZM\+;"SM]9TU@+FP>7341;B
M(G@2(6#KGC*B@#E+W_@J?_P3BTWX]']F&_\ VV/AQ#X\74/[/;P[)XH@$JWF
M[;]E+[O+$^_Y/)+>9N^7;GBO?:_.7_@M'_P3H_X)]>!?^".WQ*\*Z)^S#X0T
M23PIX47_ (5Y=:)X>B34HM=,D<.GI%.B^?+-<74D43Y9GF\]@VXL<_2_@SQ[
M\0/V+?\ @EYX=\=_M$SW&N>,OAS\%=.;Q3&T_FSZMK=MID220*W)DEGNU\M3
MU=Y!ZT =UXA_;!_9C\'_  R\4?&CQK\:=$T+PEX,UZ[T7Q)XCU^X-C9VE_;2
M^3/ )9PBRLLV8OW98-(&C4EU*B+]F']M#]E']M+PS?>,/V4_C_X8\>:?I=RM
MOJDGA[4TF>RD8$JLT?#Q;@"5W*-P!(S@UQ/P=_9!^#OPD_9I^&]C^TY;:'K&
MH?#?2+C6-<UCQ%)&=.37[S-QJNL,DQ\E96N)KQUG;YHUNI@K 2/GY(_X)7WO
M["7Q^_X+'?M(_M<_L/?&/PA_9(\&Z7X6U'P9X7(M_P"V;Z.5)KSQ!]G"HK0!
MUAM4G0,))/M#D@2(\H!^A7QQ_:%^!?[,_@B3XD_M!?%SP]X-T*.58AJ?B+58
MK6.25ONQ)O(,DC= BY9CT!KL:_-'_@ZJ^&7PZUO_ ()<:M\3-7\"Z1<^(]&\
M:>&H]*UZ?38FO+2-]5B1XXYBN]$*RR J" =QXYK]+J .>7XJ^ I/BN_P0CU[
M?XHB\/+KDVEI:RGRK!YVMTF>0+Y:;Y4D55+!V\N0JI",1GZ!^T+\"_%GQ?U;
M]G_PM\7/#VI^-M TY;_7O"VGZK%->Z;;LX17N(D):'<Q  ?!/4#'->5_L0 ?
M%;QO\7?VO+L"6+QQXWDT#PK*W/\ Q3V@-+IT !_BCEOQJ]XC=&2^0CCD_*_[
M&'PT^'GPK_X.1/VEO#OPS\#:1X>TZ;X%>%[E]/T33HK6#SFDB#.(XE50QVC)
MQR>30!^A'Q7^,?PK^!7A!_'OQB^(&E>&]'6YBMEOM7O%A26XE;;%!'DYDE=L
M*D: N[$!03Q67\$/VEO@+^TC8ZI>_ [XJ:1XC.A7WV/7;2RGQ=:7<$;A#=6[
MA9;=ROS!9%4E>1D<U\._MC_%ZZTW_@XP_94^$7Q6NA#X*D^&'B34/ ZWIVVL
MOBN5;B&1AGY6G2TC2.//S*;LA<&7G._:W\57'[/W_!R;^S#J_P ,YC;S_&[X
M9^(O#7Q)TZU^5=2M-/@FO+&XE4<-)'*"!(06$<10$+Q0!^EE%%% !1110 44
M44 %%%% !1110 4444 %%%% $5]?66F64VI:E>16]O;Q-+<7$\@1(D499F8\
M*  22> !7,?!KX[_  8_:(\*3>._@1\4-#\7Z'!J=QI[ZSX=U&.[M3<P-MEC
M66,E'*MP2I(SWK7\:>!O!/Q(\.7'@[XB>#]*U[2+O;]JTK6M/CNK:;:P9=\4
MJLK88 C(X(!K\^_^#7#3+#1/^"7\^C:7;)!:VGQ=\5PVT,8PL<:7Y55 [
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
M+1/$_AQ-(UZ?38FO+-'U:!'2.8KO1661P5! .XYZT ?I=1110 4444 %%%%
M!1110 4444 %%%% !1110 5%?7UEIEE-J6I7D5O;V\32W%Q/($2)%&69F/"@
M $DG@ 5+65XT\#>"?B1X<N/!WQ$\'Z5KVD7>W[5I6M:?'=6TVU@R[XI596PP
M!&1P0#0!D?!KX[_!C]HCPI-X[^!'Q0T/Q?H<&IW&GOK/AW48[NU-S VV6-98
MR4<JW!*DC/>N"_::_P""C'["G[&GB+3O!_[4G[5?@KP1J^K1":PTG7-:2.ZD
MA+%1,8AETB+!@)& 0E2,\&OD_P#X-<-,L-$_X)?SZ-I=LD%K:?%WQ7#;0QC"
MQQI?E54#L  !7U4/^">/['^K7'CGQ!\6O@9X4\<:O\0]5N[SQ?KWC'P_;7MU
M>0/E(+,R2HQ2WMK816\4:D*JQ;L;V=F /6_!7C?P9\2?"6G>/OAWXMTW7M"U
M>T2ZTK6=&OH[FUO('&5EBEC)21".0RD@UGR_%[X<P?$ZZ^#DWB9%\16/AI-?
MOK!H) MMIKS20)<22[?*C#213*JLP9O)D(!",1\,?\&TWPBUSX0?L&^+M/TW
M4KZ?X=:M\<_%5_\ !5+Z=I"GA+[1'!:.A;GRY98+F=3T<3>8,B3)]G_9K^&'
M@O\ :YT[XT_'#XGZ3_:GA[XJ^-FT'3+-Y66.\\+:!*UA!;/@CS;6YNX]5NBA
M^26#4RC JY! .Q^!G_!3/_@GW^TS\6+KX&? #]L/P!XN\76BRLVA:)XBAFGG
M6/)D:#!Q<!0"6,1< #)XYKV?Q!XAT#PGHEWXF\4ZY9Z9IMA;M/?:AJ%RD,%O
M$HRTDDCD*B@<DD@"ORX_;7NO^":/Q[_X*^_LK? #X.?&'X;^$?BA\*?&TNO:
MW>:#Y-K-)9V\8$'AI98%$<MQ<W&W%JSYCBBN. TJI+^B/[57PR^'7Q:_9Z\7
M^$?BAX%TCQ#IC^';Z3[!K6FQ74(D%M*!($D4@. QPPY&3@T ;OP@^,GPJ_:
M^'EA\6_@E\0-*\4^&-5>==,U_0[Q;BTN_)GD@D,4JY611+%(NY20=N02.:D\
M?_%7P%\+I=!@\<Z]]BD\3^(8-#T&);669[R_F61TA58E8CY(I79B B)&[,RJ
MI(^-/^#9W_E!Y\!_^P9K7_I]U&O9O$XD^-W_  4:T+PS X?2/@?X&FUZ[)7<
M@\1:WYUC8D?[<&G6VJ[EZ[=4B.0&&0"Y\6?^"I'_  3H^!'QD7]GSXQ_MI?#
MKPWXR,L<4^@ZMXF@BEM9' *)<$MMMF((($I0D,#T(S[5KWBSPKX5\,7?C?Q1
MXET_3=%L+)[R_P!7O[U(;6VMD4N\TDKD(D:J"Q<D  9)Q7QU^V#_ ,$V_P#@
MG;\//^":7Q/\'_%WX+>%KG2M-\ ZOK'B3QUJ^CV[:S=:FEM+/+K,MZ4\UKYY
M\R^9NR7;8!M(2J?_  38_8M\2_$G_@CE^SU^SG^W)9WFJ'3-!T[4_%/A/6EW
MQZE:QO-<Z=I=_&_+10*]B7@;@M9K&X*%U(![E^SA_P %*OV!?VO?&U[\-OV9
M_P!KCP+XT\06$3RSZ+HFNQR7+1(<-+'&2&EC7C+H&49&3R,^WU^87_!67]B#
MX/V7[<?[%'C#]D3X6Z)X/^+P^/-LT]]X1TJ*P>;P=90/=:RUR(%42PQ(((QO
MX_TMH@?WQ!_3V@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH X[Q_^T+\
M"_A7XX\-?#+XC?%SP]HWB3QE??8_"GA_4-5BCOM6FP25MX"?,E "G+*"JXY(
MKHO%7BOPOX%\-7_C/QMXDL-'T?2K22ZU/5=4O$M[:S@12SRRRR$+&BJ"2S$
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
M%]X<-WYD/A72;?P_'_9VBIM)1G@6XFDGE7(DNKJY*GRQ$J@'Z]T444 %%%%
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
M-/V(]+OO$-E#<IX)\>J\$MTBNIFTMUA!!.079'"_WBI SBOTA5510B* H&
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
M#\W?^"S/BOPQH?\ P4U_X)\VFL^(;*TE_P"%P:S(8[BZ1&"-96\2M@GH9&5
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
MX8^"7P9\%:?J6D^#?A'X8TBUUB#R-7MM,T"WMX[Z+#+LF5$ E7#N,-D8=O4T
M >0?\$[G3Q+\%/$'[77B-A;S_&GQ9>^-EN+H[/*T1DCM=%#%L; -'M+"1AP!
M))*>Y)^4/BO_ ,%D_P#@E!^U?\8Y_A]\9/VW/ FE_"7P#XBCDFT2\OV<^/-8
MM9%DBDD"(RG2;:95=%)S>3Q*Y MX5^U_I1#X:\.6_AQ/!UOX?LH](2R%FFE)
M:(+9;8)L$(B VB/9\NS&,<8Q7&_\,G_LL_\ 1M7P_P#_  C;'_XU0!\S_&OP
M_>_\%G/@IX%^,W_!/O\ ;JOOAWX?\&?$6?4M'\8_\*SMM;L?$MW9QM D\5KJ
M+(DD5O<O,(Y)(R!<6_F(N8H9:^%?VX_V0/\ @IUX9_X*V_L6> O'W_!8.\\3
M>,O$<GCW_A!?'S? 70+-O!Y@T>![LBRB/DW_ -IB*Q?OO]5MW)R37[9^&O"_
MAKP9H=OX9\'^';'2=-M%*VNGZ;:)!!""Q8A(T 5<DD\#J2:9J7A#PEK6O:=X
MIUCPOIUWJ>C^;_9.HW-E')/9>:H63R9&!:/>H ;:1N P<T /\,V&LZ5X;T_2
M_$6OG5=0MK&**_U0VJP&\F5 'F\M/ECWL"VU>%S@<"KU%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%<-^T#^T#X%_9T\"OXT\:3/(\CF+3
MM.MR/.O)L9V+GH!U9CPH]20#\/>._P#@IS^TIXEU22X\(WNF>'+/<?)MK33X
M[APO;>\ZMN/N%4>PK\ZXR\4>$^"*ZP^.G*=9J_)32E))[-W<8J_1.2;W2L>'
MFG$.6Y3-0K-N7:*N_GJDOO/T:HKX)^"__!4SXE:)K$.G_&S1[76M+D<+/?V%
MLL%W""?O!5Q'(!_=PI_VNU?<WA7Q3X?\;^'++Q=X5U2*]T[4+=9[.ZA.5D1A
MP?8]B#R""#@BO0X.\0.&N.:,Y994?/#XH27+.*?6UVFO.+:OHW<WRO.L!F\6
MZ$M5NGHU_7E<T****^U/5"BBDDDCBC:65PJJ"69C@ #N: %HKX9_9L_;H_:3
M_P""JGC[QGK_ .Q!XHT#X?? KP1XDF\/V_Q0U?P\=7U;QKJ,(4SMIEN\L=O:
M62;UQ<3+.TN5VHAWA.U^(7Q _P""B/[.G[0GP<\'>(/$O@_XA?"_QGXZ;1O%
MWBR+PS)IFMZ*'TZ\>V26..>2WFCEND@7[0BPE#MC,;^:' !]8T444 %%?)W_
M  6U_:#_ &FOV3O^";OQ'_:6_95^(.B>'O$?@[3(KS[1K'AD:DTD;W,,)$(>
M58XI )&8-)',IP!LYR/H']GOQ3KOCGX!>!_&OBF^^U:GK'@_3+[4;GRE3SIY
M;6.21]J *N68G"@ 9X % '84444 %%>??M5^#_VA?'W[/7BGP?\ LH_%[3_
M7Q#OM/">%O%^JZ)'J-OIMP)$8N]O(K))E Z#<K!2X;:VW:>M\$6'BK2O!>D:
M7XZ\00ZMK=MI=O%K.JVUF+>.]NEC42S)$"1$KN&8)D[0<9.* -2BBN<^+_Q:
M^'OP&^%?B+XU?%CQ+!H_AGPIHUQJNNZI<YV6UK!&9)'P.6.U3A0"6.  20*
M.CHKPCX(_M'>);O]F;4/VY_VH-6A\#>$+[PPWB:T\,7D" ^&M!2%KF.:^E :
M26^> B29$(CB)6%$=HVFF\<_8T_:._;E_P""H'P]3]J[X>>*])^!_P (-:O)
MQ\.=,N/"B:OXFU^QBE:(:C>23RBVLHI6C8QV\<,C[3N,Q!4L ?;5%?+'A#XF
M_P#!0'P-^W1H7[-7QNO/!6M_#WQ#\,=?U'P_\1?#WA^>RNIM:M;K3%BM;RTD
MN)DB>.">YD!CD"7&XD)%Y)6O _V4/VS/^"H'[5O_  4)_:4_8TL?CC\'/#.E
M? 75M+M[+69O@[J.H7&L17Z3R1;U&O0+"T:0@,1N#EN H&* /TCHK\]OCW_P
M5)_:V_X)@_'KP7X2_P""G7P_\":U\'OB#K:Z+HOQW^&%E>Z9#HNH,"4AU73+
MRXNC"&4,_F17++LCD90Q1D7UC_@JO\0O^"FWP-_9ZUW]H?\ X)W3?#WQ/=>%
M].-_J7@#Q7X/O+N[U&TC7=-)9W%M?0[I54%Q 8B9 "%;?M5P#ZQHKXQ_9,_X
M*;^&_CO_ ,$D='_;]\3?&O06U.\T&/\ MF;0_",KBRU\M'"^C0Z:;MYKBX:Z
M86\,0F#SF:%EXD7/5?"CXY_MF_LW_L$^)OVOO^"F]]X,F\0>&? =[XIUWP9\
M-O#D]JNE1VUJ]RUEY\]Y<"YGVIL+J$C#D@%E7S& /J2BOB3]F[QI_P %1?VJ
M?V2?"O[;/PX_:6^$UKJWCOPO!XD\._"ZX\!376A6]O<1"6#3I]2CO5NS<JC+
M'+<J-B3!\6Y5=I]!^"7Q9_;4^-W_  3\\$?M%Z5I.CV/Q:?0VU77? %[;K%I
MNJ7:-(LVCM*=TEH<J8HKA6;RY CR+,@9& /IJBO./V2?VH_A=^VA^SQX9_:3
M^#UU<-HOB6R:06E]%Y=UI]S&[17-G<)D[)X)DDBD7) :,X)&"?1Z "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@#+\:>+--\"^%K[Q?K%O=2VMA 9
M9H[*W::5ER!A47ECST%>5_\ #=OP>_Z%?QK_ .$E<?X5[117C9EA<\KU4\%B
M84HVU4J7.V^]_:0MITL_4Y:]/%SDG2J**\XW_P#;D>+_ /#=OP>_Z%?QK_X2
M5Q_A1_PW;\'O^A7\:_\ A)7'^%>T45YW]G<7_P#0PI_^$[_^7&'L,S_Y_1_\
M _\ MS\ROV]?CQ'\<OC+'<:1'J$&D:1IL=O86FHVK02*[CS)',;<J6)49[JB
MUXA7U=_P5,^"^LZ)\2K/XV:?9O)I>M6L=K?S*I(@NXEVJ&/8/&%V^IC;VKY1
MK^#_ !+PF;8/CG'0S&7-4<V^:UE*+^!I7=ERV25W:UKZ'X_GU/$TLWK*N[RO
M>^UUTMY6_P @KZ^_X)]?M9Z%\+OAOJOP^\<V.NWL%IJ0N-+.E:5)=B%)5.]#
ML^X-Z%@#U+M7R#7Z+_\ !-+X+ZS\,?@I<>+?$MD]M>^*[M+J*"12&2T12L)8
M'H6W2./]EUKZ7P1P6>8OCB$LMJ>SY83<Y.//%1:LDX\T;WERV7,M5?6QW\)T
ML74S9.@^6R=W:ZMYJZZVZ^?0Z7_ANWX/?]"OXU_\)*X_PH_X;M^#W_0K^-?_
M  DKC_"O:**_LO\ L[B__H84_P#PG?\ \N/U'V&9_P#/Z/\ X!_]N>5>"_VP
M/AAX[\4V/A#1_#_BN*ZOYQ%#)>^&IX8E;!.6=AA1QU-4O^"A\'C>Y_8 ^.5O
M\,Q.?$DGP>\3+X?%KGS3>G2KD0;,<[O,VX]\5[%2,JLI5@"",$'O7LY;0S.A
M2:QM:-65]'&'(DNUN>=]>MUZ'50AB(1:JS4GY*WZL_/'_@U9O/"MS_P0]^$L
M/AR2$W-OJ'B./6Q'C<MU_;M\P#X_B\EH"/\ 9*U^ADUO!<H([B!)%#JX5U!
M92"IY[@@$'L17P1\+/\ @F!^UC_P3I^-7C#Q?_P2R^+/@,?"_P"(.N/K6O\
MP,^*EM>0Z=H^I. );G2;^Q622V#A47R7@D0*BCG:FSZ3\ _"_P#:<^(WB32_
M&/[6?BCPE96>B72WFE^ _AZUW-9/>IS'<WM]=+')>^4?GBA6""-) )'\YTB,
M7HFY\D?\$];_ , _\%<?B]^U!\5_VK_#Z>+=%\$?&O4?ASX \$ZS,[:?H&E:
M=!$#>0VX8+'>W4LKR27.#,NQ41U1 M?/O@+_ (*5_M&_\$VOV;_^"@'P%UOQ
MCJGC9OV5-;TF/X.>(O%=R]_>6UCXAF:#3+2[FE):Z6T=X'!D)9UWID(J*OV/
MX%_X)V_M&_L6?MJ_%']IS]@[Q3X(U'P?\;[^/6/B!\+OB!>7EA%8Z\K.7U33
M[VT@N2OG&61I8'APS'B0 ($TM&_X(^_##QK^S1\>_A'^TIXJ'B+Q5^TQJ\VK
M?$[Q1HUE]DCMK@*@T^"PBD:0I!8".(P^:SL[JSO]_8H!\H?\%8OV#/@KHO\
MP;[>*/C-J4^HZK\3[7X>Z1KVM_%.?59GUGQ!>W$UFUX+RYW;KBUF\V0"U<F"
M)2GEHGEICTWXL_&KXG^.OCA^R1_P3W\&>']'U;0?$GP,G\8^*?#FO>,[K0;7
MQ(;2SLX+6QEN;2TNI9($+W%Q);>7LG\N,2'8K))D^)O^"5__  5S^(7_  32
M\2?\$N/B7^UM\&M7\)Q>'[;0?"7CAO#6IKKE]IEO/";>"]!<P6Y2*)5\Q%G9
MUC5"0S&X'=_M>_\ !'7]H'X^?!+X%>,/AC^UUIG@_P#:._9WLDM_!'Q.T;PK
M):Z=?P&WB@FM+JT>XN&\N185W-ND4[I5,)25D !/^R9_P3B_:R^!O[<WCCQE
M?:3\-?#7[-/Q%\&?9->^!^B^/]4UN"SUU2N+^QAN=+M8;5)$5EDCC*@[RV&*
MIL^/_$7POU+]AK_@H=XU_P"".OB#XO1M\*OVKK_2M1\'_$#7_$MQ=:UX)@,E
MPTNA1S2%W2YG:V>&PDD=0CLLP,TJ/&?T0_97_9U_X*/Z0;OXS_MT?M%^ O'/
MQ!TO0[BP\ ^&/"&B3Z9X:TJ:4+YM[<.RFXNKF38D>_8@AB,R1J//<UYU\>O^
M"3'Q"_:@_P"";GB_]FOXWZ[X0U+XS^,/%1\3WGQ3M9[N%+?7TF!M-3@Q&9H/
MLULL=I%;(VU8(A'YF&8T 5/^"\'P:\+?![_@B'\3=%^#.M>)?!\/@+PQ!+X=
M/ACQ?J-DPS>P)(MPT4X-ZLBR2AUN#(&,C.<OAAS?[?VO?M(^"OV-OV7/C?X'
M_9RUOXU?"_PE8V%_\<?A9H#&6]US3I-#$5O<&WY^W16T[FX:V8.DCI$74*AD
MC](_:9_8E_;Z_:T_X)3:Q^P5\9/BW\.K[Q[XBT>UT;7/B7&MZD%W;PRP2F\:
MS$6?M,GE%742"/<QD& ?*'8M^SW^WQX-\/? C5?A5X^^'<6L?"_PO=Z!XY\/
M:G=7XTOQ;:/;V,2&.9(3)92![,3*YBF\LG9B568D Y'_ ((Y_&']@7]HFS^)
M'QX_X)_?$6Y;P_XAOM+_ +=^&NHP2VMQX)OX8)HVMQ9R.5M()0 ZQP_N/,2<
MQLWS!?+/^#JKQGK6C_\ !,C2?AA87LL&G_$GXR>&O#'B!XG*DV+RS7;*2.0"
M]G&#Z].]?1/[&W[!>J?!3]K3XS?MT?$6Q\,Z-XP^,R:1;ZAX4\$32S:9IL-A
M"Z>:US+#;O>W4\DC223&"$ !5"D[W?,_X+<_L.^*O^"@7_!.7QQ\#_AF%_X3
M?3_LWB+P&6<+NU:PE$\4(+<*TR"6 ,2 IG#$X!H \^_X.7=/\70_\$.OC;I_
MPWMI(W@TW1A<PV2X*:>FLV'V@ #H@@#[NVP-7N?_  2?O/"M]_P2_P#V=Y_!
M4D+::/@GX82#R2,!ETNW5P<?QAPP;ON#9YKJO@SX_P#A5^WM^Q_I?BKQ#X8M
M]2\-_$/PD]IXI\,ZG 1Y+RQM;ZAI=U$V&CEAE\^VEC;#(\;J<$5\O_LI_L!?
M\%%?^"9.GW/P&_8N^-?PY^(_P1349[OPGX.^,<^HZ=J_A..:1I'L[?4K&&X6
MZ@WN[@2P*P+'!'.X ^])+>"61)I8$9XB3&[*"4)&"0>W!Q7YB?\ !([_ )3I
M_P#!13_L.^#?_22]K[C^'7PM^/ESKC?&']H'Q=X>UGQ18Z?/%X5\)>'%N+/0
MM'>1<,[32^;-=7,F!&;MHU$<19(K=-\QG^3OV:/^"<__  49_9?_ &X?C[^V
MAX1^)/P5U&7X]:I876H^'M4M=7(TA+)9DMXXYX]OFG9,0[,@W%00$Z4 <_\
M\':>I>";+_@BWXSLO%+P#4+[Q=X?@\,++C<U\+^.1A'ZM]ECNSQ_"&K[:_8Y
ML_%7@;]BGX5Z?\8+IK36]'^%NAQ^*9M1DV&&[BTV 7+2LQ^7#JY8GI@YKY[\
M4?\ !*?X@?M=_M)>$/VCO^"EW[0&F^/=-^'6H_VEX ^#W@SPR^E>&-.OP1MO
M;S[1<7$^IS#:I'F-'&,%?+V,ZMUW_!07]FO]M_\ :QN]'^%'PR\<_#K1_A+_
M &U97/Q \/ZR;\ZCXSTZ*1))](EGA3;9VD^&BE"+*TB<,0CR1, ?EOX9U+X:
M?\$Y?^"I7A;]N_4/A7J.F_L3?'?XEW<_@674=0D72_#WBI[98(?%0L<+';6U
MQNO#:F3)%G(\Z!!'"@_<_P"*FD_#3Q3\*O$>A?%Z+3;CP?J/A^[@\3IJTJK9
MR:;) ZW(F8D 1&$ON)(&TGFO'?\ @I/^QJ_[='["/C+]D&P\->%4G\5Z*ME8
M3Z]),+30KA0&@O81#$6>2WE6-XT'EAMN&(7*MX[^SK^P+^WYX3_X)>>./^";
MW[2G[1/@KQA-J/PIUGP=X(^(5A!>PWMG'=6,MI:I>1N")E@64 2HZOLB12K-
MEZ /D?QM_P $[?\ @K%_P0@O]8^,O_!(_P"*4WQA^ \%Q-JFN_L^>-F:XO-,
M@R7F-B0092%W'? T<S':'AN2I)_2/_@F?^W7\*/^"C_[&WA3]K'X0>')M#L=
M>6>+4O#URRM)I6H0RLES;LR@"0"0%ED 7>CJY52Q4<AH/@S_ (+"?#_X7V_P
MALOB;\#?'&J6NG"RMOBWXBM]5TN].U BW=QHT$=Q#<S_ ,3!+V!';G:@.*Z/
M]A_]DOX(?\$F/V%K'X-0>/2_A_P5IU]K?C#QGK:K!]KN'9[J^OY54E84SNVH
M"=D:(N6*[B ?+'_!O[XEU70OVB?VZOV<;:1O^$=\&_M3:OJ'A^#.4M1J$UP9
M($_NHOV5#M' +$]2:_2VOBC_ ((??LO^-_@_\#?B'^TY\7_#-UHWC/\ :.^+
M.M?$C4]$U&+R[G2+"^G9M/L9EZI(D&)&0X9&N&0@%"*^UZ "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** ,_P 4^%?#GC?P_=>%?%NB
MV^H:=>Q&.ZL[J,,DB_3L0>01R" 1@BOE[QW_ ,$G/AKK6J27W@#XE:GH4$C%
MOL5W9+>I'_LHV^-L?[Q8^YKYW_X*%_\ !0O]L'X&_M@^+_A;\+?B]_9>@Z7_
M &?]AL?[ T^?RO,T^VF?YYK=W;,DCMRQQG P !7B_P#P]D_X* _]%]_\M72O
M_D6OO\=]%JKXAY5AL;F$,-4C4A&<'*56,U&:4DG*%--;ZI2:OWW/P+B/QEX
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
MO&/^">7[9/@W]O\ _8P^'W[6W@D0Q1>+] CGU*PA?<-/U&,F*\M>>?W5PDJ
MG[P4-T(KY _X+0_\%AOVA?V*_P!I7X.?LJ?LA^&_"E[J_C7Q;I&E^/?$/BW2
M+B^M=!35KF2#38EC@N8"9Y1:W\Q5FX2V7C]Z#0!^DU%? _\ P7#_ &Y?VT_^
M":'[)_A3]H'X&>+_  %K.H7WCK3/#6M67BGP7<R0R_:TN#]IB\B_C,95HD'E
ML7!!/S USO\ P4!_X*/?MY_\$>+GP'\;/VNI_AG\6/@KXG\50>'O%6L^!O!5
M_P"'-<\.7,L4DB3K#-J=_%=P[(9GVYC;*!-PW*U 'Z-45\[_ !Y_:J\0?LD_
M&?P7KWQ7URVU/X0_%/Q%:^';#Q"8$BF\(ZY<IBQ29D 6;3KMD,8E8"2WN'0.
M\D4X^S_1% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% &+\1?'>C_#+P1J7C[Q!:WL]EI=L9[B+3K1
MIYV4$#"1KRYYZ"O#_P#AYS^S_P#]"5\1O_"#N_\ "OHJBO7R[$Y+0I-8S#2J
M2OHXU.2R[6Y)7];KT/'S+"YW7JIX+$QI1MJI4N=M][^TA;TL_4^=?^'G/[/_
M /T)7Q&_\(.[_P */^'G/[/_ /T)7Q&_\(.[_P *^BJ*]#^T.$_^@"I_X/7_
M ,I/._L[B[_H/I_^$[_^7'X=_P#!0SXG>'_C)^V#XO\ B1X6LM1MK#4O[/\
M(AU:P>UN%\O3[:)M\3_,OS(2,]00>]>+U]%_\%9/^4@/C_\ [A7_ *:K.OG2
MO[OX0E2GPEE\J4>6+H4K)N[2]G&R;LKV76ROO9'\ <91K0XPS&-62E-5ZUVE
M9-^TE=I7=DWK:[MM=A7VC_P2%_:=^'_[./\ PL+_ (3K1/$=Y_;/]D_9?^$?
MT&6^V>3]MW>9Y8^3/FKC/7#>E?%U?HM_P0'_ .:L?]P'_P!R-?.^+%3"4N ,
M9+$TW."]G>*ERM_O86]ZTK6=GL[[>9]+X14\95\0\%#"U%3J/VEI./.E^YJ7
M]WFC>ZNMU:]^ECZ,_P"'G/[/_P#T)7Q&_P#"#N_\*/\ AYS^S_\ ]"5\1O\
MP@[O_"OHJBOXR_M#A/\ Z *G_@]?_*3^VO[.XN_Z#Z?_ (3O_P"7'AWP[_;_
M /@O\3?&^F^ ?#_A3QQ!>ZI<B"WEU'P=<P0*Q!.7D880<=37N-%5->FUZWT:
MYF\,:=:7>H+$39VU_>-;PR/V#RI'(R+[A&/L:\C,:V6UZJ>#HRIQMJI3Y[OO
M?EC;TL_4]C+:&9T*36-K1JROHXPY$EVMSSOZW7H?F%\0?^"7/AK_ (*5_L8_
M$*#PIXA/A+XO> ?VGOB3K?P@^(=I(T5QHVJ1^*KYUC:6/YUMY6CC#[<E&6.5
M06C /+?LW?\ !43Q+^VJWP*_9F_:O\/#PA^TE\'OVF-+TKXI^$+J-87O#'H^
MLQKJUL@^5H93M+^7E$=P5_=RPL_W?^P'\ _VDOV<O#WC+PG\=]4\%:K%XE^(
MWB+Q?9:AX5N+M&MGU;4I;YK)H9XL,L;3R 3"0%@%!C!RU<5^U3_P28^$?Q]_
M;_\ @O\ \%'_  C+;>'_ (A?#'7/^*@N5@^3Q)I)MIHEAFV_\MX6D4QRG^#?
M&V1Y9C\\]$Y+]KOP!\,]?_X*0Z7J/Q_\8W'Q>TV\^$DEGX%_97TKP\-0ECOS
M?9N?$EPDTR6<">6%MDN[TPQJS%(Y0^ WS?\ \$U=3_;9^+?_  1]_; ^!?[.
M?C#7;;XA>!?CAXZ\%?"*UUCQ)YU[HEI;PV4D.F17KR';)'Y]Q%%+YFU'9&#J
MJ@CZ6^(G_!/+]M'PC_P5*\1?\% /V1?VBO 6E:3\2/ ^G^&_'N@?$+PM>:E)
MIZV94176G"VN( S;5!\N21$W-(6W[EV<7^S5_P $EOVXOV8/A)^T3\+O O[:
MWATR?%#XN7WC[P#K<OA-EO;#5;J]L+AKO47C9(Y2J6"(+>WBCC9I9BS%72.(
M X+_ ()M?M1?\$^_VD/VO/ /@GP]\&=>_9E_:(^'MKJ*>+O@EXDTR?3_ /A)
M$ETZ6*:522L>I31-MG2YF7[48A,2I1FD'8?\$Q5^'G_!8"V^.7[6_P"U=X=C
M\76*?&'6/!7PZ\+:K.[6?A/0M.BMQ"]K$& M]0F:9YI;Q,3Y,:JZHBJ/7/%7
M["'QN_:F_:W^"'[4G[6>A_#;P_J/P*N;^^TZ]^'NHWM[>>([NXMO)6.1[JUM
MSI]FC%YC;A[HNVT>8H#%_/?@?_P3#_;E_8"_:H^)7BK_ ()[_'GX:+\'?B_X
MHE\2Z[X#^)VAZA/+X6U>?_7W&G&REC%PC8 \J1XAL2./<#&)" ?.G_!)KX<^
M*](_X(W_ +7_ ,+/ G[73_"K4-._:)\<6$?QC\2WIDETB&$:>DU]/<-(C"5X
MDD!GWAU>3S%.X"K/C_6?!'P+_;\_85\5?L9_"GQ=X$\.^,/$E]X7\2>,;RR.
MD0?$O3WT^)A/=6$LQN[DA]TZW%]"DA:571I!M<=WHO\ P0+_ &E-;_X)P_M#
M?L(_%+]KSPQ+_P +C^*5]XYT34]'\)7"-I^H/?VETBW4IN%6:"0648>%(%,3
MR,RR2A56NX^.O_!-'_@J'^T_XG_9Y^.WQ=_; ^$EI\0?@GXU&JFRT3X?7IT.
M6%K<137#*]R+BZNF* [ ]K %8J%4KO8 V?@IXDT3_@I=_P %*OVD?AI\?K<Z
MW\./V?+O0_"_A+X=W4[?V9>:C=6TUQ?ZK?VP.R\FWHL$ E#)$D;LBAY&:N3_
M .".?A2+X4?\%6_V]/@)X8\0ZW-X2\&:E\/K?P?HNK:Y<WL.B6EQI^J7CVEJ
M)W<PP++/)MB7"J, # KH?B?_ ,$N_P!NCX)?\%!-?_;T_P"":7[3_@?1;CXH
MZ3I]E\9/!OQ8\/7-WINK7-G$(8M3B73VB83[ 6\M6A =Y3OVRE%Y?_@CMH'B
M_P ,?\%@_P#@H3HGQ \=-XFUN'4OAH=5US^SH[1;J=M%OW8QP1DB&(%ML:%G
M9450TDC!G8 V/^#JV#QO/_P1,^)H\'"<P)J^@-KXM\Y-B-6MLYQSM$ODD^P.
M>,U]=_L!7?A6_P#V$_@M>>!I(6T63X3>'3I)@(V?9O[,M_+"X[;<5W/Q<^$_
MP\^.WPO\0?!CXM>%K;6_#/BG2)],UW2;L'R[JUF0I(A((*D@G# AE.""" :^
M,/V3/V'?^"F/_!-GPX/V<_V7/C;\,_BM\&=.NI6\&:/\7Y]1TK7O#-J[L_V%
M;ZP@N8[R%"S%2\,;#.T;5"J #[(^-GQ#TKX,_"+Q7\;-5T@WD?A#PMJ.KRPQ
M "22*WMVG>-3@XW"(#Z@>E?G[_P3B_9@\"_\%4O^"6>C?M3?M2:[J.K?%CXN
MPZQJH^)%CJD\.H>$;K^T+J"TCT:1) VG0VBPPA882J.T;F0.9'S]I?#OX'?$
M?Q%J5YX[_:N\5Z)XDU>]TB;2[7PUX?TZ6#0])LIP/M$:).[R7<\H"I)<R[?D
M0)'%"&F\WYL_8W_X)]?MT?\ !-KX>^)OV3_V2/BQ\.M>^$MWK=]J'PVOOB ;
M]=8\"K>.TDEL8+>-X=7ACE9I4#36C,SON;##: ?GM^T?^UG^T+^V)_P:K>*?
MV@/C;\3/%=I\3?A7XTB\(:EXAT'Q1>Z?'X@$>M6%F\MY#;RI%>;K:Y5&\Y7'
MFQO( K,:^C_^"S_[,=C^RAJW[.W[;/P(^,GQ!T?XO:Q^T7X8\*^(?',WC&ZN
MGU33-26X%Q;R64SM9)$#$FV".!(57<GE[6Q7KO[4_P#P10UGQ3_P1[M?^"1W
M[*WC[1=*TV]GMKGQ-XZ\9>=)=WEU'J46ISW7DP(0\MQ<HQ.741)A%#C&WM/^
M"DW["?[7O[?'P;^$'P^TCQ)\.?"^J?#SXEZ+XXUJ^N+R_O(+Z]TPSK':PHMO
M&R12"179V8LI)0*VWS& /!?VM_V>O"?_  3]_P""L?['GQ1_9N\8>-;/5?BW
MXXUKPS\5)M=\<ZEJJ^*[5K*.1)+M+N>1/,21V=?+5%4[-JJ(T"X_A_\ 98LO
MVD/^"]'[2O[,/Q'^.GQ1D^''_"H_#FHZAX7M_B-J:M<_:"C/9I=&<W%I9M*6
ME:"W>(,VU,B+=$_TS^W5^PW^UC^UI^TO^SI^T%X2UKX>:!%\"O%4OB*[T?4-
M3OKEM:N)XHHY;9)4MD%O&JHX64HY8NK%%VE&\ \ ']HZU_X.4?VA-?\ @/8^
M#]1NK;X&>%DUSPUXLU2YL;>]C=8MK17UO;W#P/&Z_P 5M(LBNP(0[6 !Y;^S
MA\;OBO\ \$7?VD?VVOV.=!\<>(/'7PS^%7P5/Q4^$FG>+M3EO9=(D:%/^)<9
M6.X0-/.%(S]VV\S >20M[C\*/V(_"_[7/_!&;P[^TSXB\<Z[/\?O&'PEC\=6
M7QMMM<GAU[3O$,]F;^)8+F)U:"TAE98!9Q[(!"A0(#\U?0WP:_X)MZ-J'BKX
MZ?&C]K^YTCQ7XQ_:'TJ/0?&.G:/'*NF:1X<ALVM(-'M'DQ+(/+>1Y;AA&TTK
M[A'&$51YE^S=_P $^O\ @H;^RA^R9J__  3I^''Q_P#A]K/PX%KJ&E>!OB7X
M@M[T>)?#6D7;2'R'T^./[-J$\ FD$4OVF!!A-T15?+H ^<(_VUOVV/VP/^"0
MW[*O_!0#4/V;]5^,OA[2_$NH2?M$_#'PU&%N?%EE9_;]+2]%L@VWD27$*WKV
M84QO*(PR".-F3Z3_ ."57C?_ ()V?MG>&OBS\1OV&/B9K]AX:\7Q:19^*OAI
M;:C?:%JG@6^@2Z1HX$MYTDTV.96!46C+%YD4Y1R2X7T:#]ASXR_LM>!O@1\.
M_P#@GCXL\-:5X<^#NCWVCZOX8\<R7(B\4V%Q'!N62>UC8P7#3Q&Y-P(G D)_
M=LKLM0_LU_L(_$#X.?M1_&K]OS5= \$:=\1_BWI6E:?'X-\.:G<_V-9I9(P\
M^YOFM(Y;RYF=M[R_98L+&B!22TA /@3]C#P7IGQW_P"#53XY/\<=0U/Q==:-
MI/Q+U>VO]=UBXGGEU"Q2^EMKB:0ONG9)420"0LN]58C*@CMO#GB^T_81_P""
M#?[./BC]FJR'AGQ=\?(?ACX/UWQ/_P )#<VQMAJ,4?VFZ6X83_86\@W2+/%$
M3"TPD5&:-5KZ&_8._P""4/QC_9\_X)?_ !+_ .":/QW^*/AG4[/QUIOB>SM?
M&'A:WN%DMTUN&9)M]K.H&8FF9E82G>"%(7;N;*T'_@C;\7OC7_P2B_X=F_MQ
M?M ^'-1AT+P[I6D?#O7OA]X9EM6T%M+S]BU"5KB9GNKD@1I*J^3&8T*J SM+
M0!C^-O\ @FI^VWH7[67P=_:6_8V\#_";X+MX2\1)%\5K72_C#KNI1^.?#\CQ
MB>VN[>318DN;L()6CN9F,GF2!F?*JR_H[7PA^R+^Q/\ \%>;;4/#_P /?^"A
MW[>O@OQO\.O!][:W5K:^#O"\D&M>*WM)$DM$U6\E50D22QQ22)$K/<>7LED9
M'D#_ '?0!^9__!VW_P H7?%__8X^'_\ TM6OT?\ #\\=KX1L;F8D)'IT3.0I
M)P(P3P.M?(__  6Q_P""?7Q^_P""H/[)\W[(/PH\:^$/"FE:EK%CJ6J^(_$#
MW4]QFVD:0016T,84 L(SYIE)X9?+Z-7U)\(;?XFV/P\TS3/B_9Z'%KUI:1P7
MLGAV\FFM)V1%4RIYT4;Q[B"?+.[:,#>W6@#\\?\ @DWX1^%W_!9O]C+Q5^VC
M^V)HUQXHUSXC^.]=@T..XU.9'\#:5;SFWLK+23&X_L^2.-%E:>';++)(7D=^
M,?*GC7XD_$3]JG_@WV_:X^"/[96LWOCSQ9^RU\2-9\(:%XTU>[E,^I_V?<VZ
M6UW<D,!/<QB25-\@8[0C$ERS'[W_ &5_^"=G[6/_  35\=_$;P=^PSXM^'>N
M?![X@^*+CQ+H_@WXA7-_977@C4[A56=+22TAF6^LSLC*V[_9V4( )<[W?:F_
MX(^^$8/^"87Q4_8#L/BI++XC^,$FLZUXV^(L^E!3J/B74IA<3:@UJKX2(2I$
MBPAR1#$J[V;+D \T^)W[-/PD^'?_  23^%UEX6_:/'P-\*:O<>"M8^)VI1W%
M_<W'BJP^SP?:=$MQ%-]H$]Z2D:Q6V7DP8A&PD(KB/@!XB'PG_P"#@KPM\-?@
M3\$?$?P@^'?Q#_9ROM1U7X?W\=O8V>K7=IJ#"#5AIEO-(EG,4 C_ 'BQ7& P
MDC0LV[M?CI_P2A_;]^.W[&OP5\$>(?VMOA_;?%SX ^._#WB3P%<V'A&ZC\-R
MG2+=K>%+Q'EDN)II<B629=J#;Y<<$8+2-TU]_P $V/V^/%O_  4;^%W_  4.
M\;?M;^ $U?0/ 5[X7\:Z-HW@*>.UMK*:?SO*TE9;AW,A+,#<7<D@5_G$)4B%
M0# _9%_Y60OVNO\ LDO@C_TF2OT3KXY^ ?["W[3GPN_X*L?%K_@H%XG\3>!;
MGPY\5O#>E:')X7L+J\^VZ3#I\4<<,XF> )<,^QRT96,#S!ASL^?ZT\83^,+;
MPW=3> -*TV]U@(/L5MK&H26MLS%@"7DCBE90%R<!#N("Y7.X 'X(_P#!/WX[
M_P#!2#]E[_@F/^UW^T#^PCX?\$ZW!X;_ &J?%=QX@T[5M"NKO6+.U%KI_P!K
MU"S"W"03-!$8Y!#+&1B.5CO $9_3/_@A?^S5^QU\%OV)['XP_L@_$S6/'UO\
M8;UO%GBOXA>)9(SJ>M:G*2)EN$C&V!H9!+&8!GRW$F6=F9VSO^"-_P#P3G_:
M:_X)N>%/B/\ #3XP^._ GC'1_B+\2=1\:W&H:"MY:SV-Y>0PQ2VX@FC=9HC]
MGCP3(A7YLA\C%7]D7_@F7^TG_P $Y_VI/'^J?L<?%;P;)^SY\0=<&N-\'?$]
MM=Q2^&M2D %R^F7, =(HF(XB:,KM6-./+WL >#_L]^"?BY_P6*_9B^)7QV\9
M_!#P%XLOO%OCCQ/I'@_Q#XC^,>K:5J'@6"SO)K33X;"VM='N$L)(DBAN&DBF
MWW#R%Y3AA&GE_P#P50_9"^/7@7_@E?\ LP^'/^"CGBS0?B%\7_"7[0GAKPW=
M>-M$UR_NH[S2KB]N=H9[B.!FG:W6".68QB1S"&+L237T%I__  25_P""D_[&
M7[3WC[QW_P $J/VU? WA?X7?%;Q/-XA\3?#KXF^&)]0AT'4[@YN+G3Q#]_)^
MZA>$;1&C^8(T8>L_MR?\$I_'_P"TS^P+H/[-/@C]H@?\+%\,^/\ 3O'4/Q!\
M7:4)8]9\0074EQ--=00%?*AD::0)%%E846*- 4C H \7_P""HWP6^'7[,/[6
M/["=E\ =(N?"T6H?M%P:5JBZ9JUR#J%E(/.:"Y9I";A!)DJ)"VW<P7 )%=+^
MU/9)X*_X.,_V5/\ A$;JZTR'QA\/O&DOBFSLKR2.WU66VTZ002SPJPCDD0,0
M'*EL!1GY5QWW[>/_  3N_:]_:\^!_P (_&&F?M!^";3X]?![XGV7CK0=6F\,
MW$'AB>YBW*VFFW666Y2UVE/WC222L8V/R"0"/GO$7_!-O_@H/\5/^"@?P+_X
M*!?%+]JCX:6^N_#+0=;LM;T#2/!-Y+I2I?Q>1]FLH7NDG;,;2,]U/<Y\P1E8
M @,9 /G?X3?L)^#_ -L#_@KQ^WA^Q_\ %_XZ?%F7X=Z5HW@*2RTF#XF:F]U%
M/=Z4UXKB[GFDE:*&:6X=+9R]N3*FZ-O)C"[6G?LGZ4/^#ABY_9 ;X\_%N;P
M?V*HK[4]+O/BCJL]Q>@:_:V<D NI)S/9QRK;PO)]D> L589"RR*WT]^RM^PM
M^U5\$O\ @IQ\<_V[/&WBGP!=Z!\=+70[?4?#&E7-[]KT0:39"TM7CGDA"7)9
M WF*5BY?*D!=K36W[#'[3=O_ ,%D+C_@IA_PDG@5O#<_PE'PX'A/[7>"^73?
M[36_^W^=Y'EF?>O^HV[,'9YO_+2@#R#_ ((V^'#^S9_P4L_;9_8%^'OB/6I/
MAA\.]9\%ZQX%\/ZSK=S?C1'U?29;J\BAEN7>3RV?R\!F/^K!Y)8GNO\ @Y6^
M*GBCX1?\$4/C?KW@^[EM[S4]+TW1))XB1MM;_5+2TN5..SV\TL?_  .NE_9#
M_88_:;^!?_!27X]_MP_$/Q'X%NM%^/,.@I>^'M&N[QKG0O[(L3:6Q266!5NO
M,4_/E8<%MR_=V-ZG_P %+/V0+7]O;]@_XH?LCRWD-M<^,_#$D&D75SGRH-1A
M=+FRD? )V+=0P,V.=H..: .P_9'\*:1X#_92^&/@?P_$J6&C?#W1;&R1/NK#
M#8PQH![;5%?%_P#P7\_9PC_;0\%^!/V?_P!G#2)[G]IK0-6/C+X2:UI>HK9R
M^%8+)T:YO[NYVGR+:5DBMXU.#+=M;D?+#*\?NO[ ?Q>^+GQ6_P"";O@G_A#M
M$TFR^*?A7PQ;>$_%^@^,9YHH]'\1Z;&EG?0W:PJTG$D;2HHQYD<D3!PLBO5O
M_@GK^R]^TC\!)OB#X]_; \;>$/&?Q%\?>)%U'4_&WAB&Y@\VSC0QVNF+;SJ?
MLUK:)E8421@QFF=AYCR22 'EG_!OI^UG\)_VE_\ @G_I7A/PQX3D\+^/?AUJ
M$^A?&'PIJ$DC:A;^)!([WE]<F8F61[R8RW#22$L9'F0L6B:OG/\ 9*EOK'_@
M[V_:6B^)#LMY>? C3_\ A"C=?=>R$7A\N(,_[2S9QW6;_:KUN?\ X)6_MM?"
MS_@KIXJ_X*8?LE_%?X9>$-"\;6<5AXW^&M]#J$UOXHBC&TW=Q)&BK!=L524/
M&C>7)NR91)+YGJ_[??\ P2[U;]JCXM?#_P#;8_9Z^,"_";]H;X96YAT#QG;Z
M?_:.GZC9.'\[2M0@8QM<6K&2958%6032':=P4 'U_7S5_P %)K6V@\*_!BV@
MMT2/_AI+P5^[1 %YU($\>Y)_.I?!.E_\%8?&&DIX2^,NN_ OP;YB>7?^+_A_
M)JNJWC)T9K6ROX88;64C)1Y9;I$;!:*8 JU3]K3]DOX\>/?!OPN^&'[,E_X/
MTO1_AY\0-"\5W=_XTU.^N;O5'T^Y:=[9O+B9M\[8=[MY'=G>0F,D[B ?%7[
MGQ*\'_\ !%G_ (*7?M"_\$WOC%KT7A_X.^*=(OOC+\&;^[.VWL+)(9)=5L(_
M:*.WEVH.B::[GF7GRO\ X*@?#GQEI_P1_9._:0^,.ARV'C_XW?MO>&O&GBBQ
MNQ^^TJ">)HM,TENX^QZ=%:6[+G'G).XYD-?H9_P4&_X)0?"O_@I/XX^!'Q2^
M-]M9Z9J_PE\:+J^KV=C(UU#JVFO%NN=(,K)$TD,L\5KEF1?W:S+L!E..8_X*
M\_\ !.O]J/\ X*):U\);3X2^/? GA32_A-\2['QM:77B#[9=7&JWMJ/W<#11
M1HL$0+2 D/(6RI^3!! /'?\ @[8$Y_X)E>%Q;%!)_P +S\.>67!*AMEYC..V
M:]0_;V_X)=_M,_\ !535/ OPK_;$^,G@KP_\&_"'BJ'Q#KGA+P#IEY+J/BJ[
MA1XXXI;NY=5LX-DLH*HDC?O#\Q(1DM?\%BO^">7[7'_!4O\ 9E\,_L[^%_%7
MP\\!'3/%MCXDU;5KR_OM4,ES:K<(EO%&MM!B,^:KF1CDX*;!C>WV?X"G\?W'
MA:U?XGZ7H]IK83%[%H-_+<VK,.-Z-+%&X!Z[2IVYQN;&2 ?&G_!QWX1TSQ!_
MP1/^.%DT:P'2M$TW4=/DA^1K>:UU6RFC9"/ND&/'&."1WKZ6_8I^)OB+XU?L
M:_"3XR>+W+:MXM^&6@ZUJC,,$W%UIT$\A/\ P.1J^>/^"Z?@[Q;^TG^R#:?\
M$]/A/*3XR^/GBS3-!LWC3?\ V7I%M>P7VJZK,O:W@MH"C,<9DN88QEY44_7O
MP^\#>'/AAX"T/X:^#[,V^D>'M(MM,TNW)SY5M!$L42Y[X1%'X4 :]%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110!\7_M9?\$A?^&H?V@-?^.G_#0O]A_VY]E_XE?_  B?
MVGR/)M(;?_6_:X]V?*W?=&-V.<9/G/\ PX'_ .KL?_+$_P#NZOT6KSW]I/XT
M_P#"E? :ZOIZQ2:I>72PZ?!+R&P0TC$>@7(^K+7V.,\;^,.#N'76JX_V>&PU
M-+^'2=HQ2C&*O!MO:*N[MVUNSX+_ (@IP)Q+G3D\#SUZ\W)OVM97E)N4G95$
MDKMMV226RL?%?_#@?_J['_RQ/_NZOHO]@/\ 8#_X8;_X2S_B['_"4?\ "4?8
M/^8#]B^S?9OM'_3>7?N^T?[.-G?/'O'@SQ7I7CGPK8>+]$EW6NH6JS19/*Y'
M*GW!R#[@UIUIF/BEQAQ5DSPV*QBJX>LHO2%)*2NIQ:<8)VND]'KZ%93X5\$\
M+YO'&X+!^SKTG))^TJNS:<9*TIM;-K5?B%%%%?%'W8445C^/--\;ZMX6NK#X
M<^*[#1-8=/\ 0M2U/1VOX(6]7@6:$R#V$BGWH V**_-;_@F#_P %L?B3\7_V
MT_B#_P $V/\ @H/I/A;0/B;H7BO5[+X<^)_"VEW5AHWC2UTZ[GL[E+=+N:5Q
M.DMK.X <AU61<*T)W_3G[=?Q9_:B^$GC;X.V/P$\=^$=/T_Q_P#%:Q\)Z_;^
M)?",]_)!;36=]=27%O)%>0 2 6@0*ZLO[S=_#@@'T;145A%>06,,.H7:SW"0
MJL\Z1;!(X W,%R=H)R<9.,]34M !115/Q!!KUSH=W;^%M3M++4GMW6PN[^Q:
MY@AE(^5Y(DEB:10<$J)$)'&X=: +E%?%7_!#C]K+]IG]KOX$_%GQ+^U7X]T_
MQ#XA\'_M!^)/"-E=Z5H4.G6T5C81V:QQQQ1Y.W>\KYD>23]Y@NP Q]JT (PW
M*5R1D=17B'P+_P"">/[-'[.7[0'C/]J#X5Z;XGMO&OQ$D@D\<:IJ'CG4[V/6
MF@1XX#/!<7#Q'RED=8\(-@.%P.*]PHH **X+]I_6OBEX7^ ?BOQC\&O$ND:7
MXBT30+W4=/GUW1GOK21X;>218Y(DFA8JS*N2K@@ XKXR_P""6O[4'_!4?_@I
M)_P3V\*?MIV?QY^"OAC6?%4FJ"T\,W/P:U.ZLX6L]1N;-4DG77XY")/L^XLJ
M@IYF K;?F /T*HKX_P#^"5'_  4T\6_MS:S\7/V?OCS\*=/\&_%[X#>+QX?^
M(.F:#J#W6E7A=[A(+VRDD D$4AM9_P!V^64*I+'?@>U_LU> /VK_  1XD^)%
M[^TQ\?\ 2/&^F:UX\NK[X:V6E^&(M/?P[H+@>1I\SI@W,B'(,K;F;&2QW!$
M/5:**\[_ &G_ -I_X4?LD?#%/BE\7-;2UM+O7=/T72K59%$VH:C?7*6UO;0J
MQ&]V>3<0/NHCN?E0D 'HE>&>!/\ @G5^S-\-_P!JS7?VV/"MCXK3XD>)K"*Q
M\0:[<^/-4GCO[2+9Y5O);27!@,:>6FU1& N.,9.?<Z* "BBOAW_@H5^U;^US
M^S[_ ,%(_P!DOX-_#OXHZ):?#GXO^-=4TSQ5H2>%(VOY5M+..4*UY-)(-CM*
M3B**%U\L#>X8X /N*BBB@ HHHH **^'?^"OO[5O[6_[*7Q:_9;'P*^*&B:1X
M4^)O[27A;P-XTTN7PK'<W]W:WMT6G"74TCQQ1O#$T15(!*I<NLRG 'W%0 44
M44 %%%% !117@_QJ_:AUF]_:B\/?L)? :]MU\;ZKX;E\4>,==G@$T7A/PZDP
MMUN/+;Y9;RYN#Y-O$V479-/(KI"(9@#WBBOF*^LO^"HGC3XS_$5_!_QI^&'@
MCX=^'=5M;#P.GB;X2W^LZOK<2Z7:2W5[--%J]C"B&\DN8T$<1!$1Z8Y^8?\
M@F3^V9_P6$_X*=?\$\Q^V5\./C'\!_#WB6YU'5+/2O!FJ?"+5);2YFM'*(CW
MJZZK0B0X^?R'V?W6H _3NBN<^#_B+Q7XO^$GA;Q9X\T)]+US5/#EC=ZSIDEL
M\+6EW);H\T)C?+1E'9EVMR,8/(KHZ "BO._@!^U!\*/VF-1\?VOPDUM-3MOA
MUX^N/!^LZA!(KP2ZE;V5G<W"1,I.X1->"!LXQ)#(.@!/HE !17P[_P %2_VK
M?VM_V9OVL_V4?"'P>^*&B:9X(^*OQKL/"WC'2#X52:_N8'*NZB[FD=$C= RX
MCA212<B7L/N*@ HK\[?B5^VG_P %%E_X+2P?\$P?AW\6_A7I7AS4_A$?'5CX
MGUGX67VH7D"BYDMC9O''K-NCG=&6$HV\$#83S6O\)O\ @IQ^T_\ !S_@K)I?
M_!)K]O#POX(U;4/'?A*7Q#\*_B5\.=-N].M]2@BCNI)(+VPNKFZ-O+ML;OYD
MG908D&TB4%0#[[HHJ*^OK+3+*;4M2O(K>VMXFEN+B>0(D2*,LS,>%  ))/
MH Q=/^%_@32?B)?_ !6TGP_'::]JUC'::O?6LKQB_CC(\HSQJ0DTD8&U)'4N
MB,R*P5F!WZX#]E_]I+X:_M<_!/2_V@O@]?M>>&-<O-0CT6_;&V]AM;Z>T%RF
M#_JY3 9$SSL=<@'('?T %%%% !117SWXG_:@\4_LW_M=^%_V?_C[JL%[X3^+
M][>0_"[Q@;=()+'68D-P_A^]" 1L9(0[VDX"M(()(9 TJK+. ?0E%%?G[\7O
MVX/VZO!G_!;_ , ?\$T_#GCKX=_\(+XW^&=SXRFUJ[\"73ZK9)"]_&;-6&HK
M%(2UHA$IC&!(PV$J"0#] J*10P4!FR<<G&,TM &#I'PR\#Z)XZU/XFV6@JWB
M#5K>.VO-7N9GFG^SQ\I;QM(Q\F ,2_DQ[4WLSE2[,QWJ\O\ VU/%7Q?\!?LH
M_$'X@_ CQ5HVC>*/#WA#4=5TN^UW0WU&W#V]K),%,*SP\L4 #%B%SDH_W:\_
M_P""0G[07Q8_:J_X)J?"#]HCXY^)4UCQ;XL\*B^UW4DL8;99YC/*N1% B1H-
MJJ,*HZ>N30!](4444 %%%>>_M5_M-?"S]CC]GOQ3^TK\9]1FM_#WA73C<W26
MD7F7%W*S+'!:P)D>9/-,\<,:9&YY%!('( /0J*\3L-%_;H\8? *3Q19_$?PA
MX.^)6MVZWUOH&M>%WU;1O#Y:,F/3F,-Q;3W#*2JS7/F89U9HXHT(CKYA_P""
M,_\ P4H_:Y_:H^.GQI_9-_X*(#P1X3^,'PEU=89_ 7A;P[<6BW&F,(]FJQ7%
MQ>3&YA9VQ\B*H2:W?<?.  !^A5%?)/[*?QA_;F_:E^,?CSXB>'OBQ\/8_@'I
M^JOIGPUUN+X?W1U7Q1)$@2ZO$E.H^3]ACNA+%%,(_P#21$SJ%CV22_/>H?\
M!:7XX_L8?\%:[W]@?_@HC<>"Y_AKXBCT^'P+\7/"_AJ\TJ'3M1O(S);V>J>?
M=7$2[P'C\Q&4*460@(TGD@'Z=45X#_P4U^,GQ]_9R_8Q\;_M"?LY>(/#5KX@
M\&Z*^I1VGBO09;^SO55TS&PAN('C^4MA@QY(R#C%>'?\%L/VT?VUO^"9?_!/
MV3]K'X2>./ 7B#7=!U?3K'7++Q#X'N1:WXNI_),D*PZ@KVY4NA"L\N0IYR<@
M ^[Z*^//VBO&7_!5_P" 7[-&J?M+?#[XI_!;XC7'ACPU)KNL^![[X8ZEH;ZG
M:PP>?/':WJ:U<B"?8K[!)#(C$@$K]ZM_X#?MX:E^WI_P3#L/V[OV4[JS\)ZA
MJ_A74-2M;#Q5I3:E%97UE]HBGLYDBFMVE07$#*)%9"R , -V  ?4E%?#?_!'
MC]J_]M#_ (*7?\$V-*_:U^*'Q+\'^&/$_B^ZU%/#T/A7P7(+33&LM0EME^T)
M=7<S74<IMF$BHT+>7*0CQN!*/?/V*OVN[3]J?PMXFT3Q/X=B\._$/X<>*;CP
MQ\3/"4=T9ETW4X0K++ [!6EL[B%H[BWE*@M'* P#HZJ >T4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
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
M:QBX26RN9$6XO%N1>SQP[F6.%I_*&=SH[)$T?U-\2_V&OVIO&O\ P5G\!_\
M!1K2M=\ V^A>"?A[>>$&\(SZC>M=WT%U+++)=?:1;;(G5I$VQ>6P(C(+C?E(
MOV(/V'/VLOV4_P!JO]HS]I/Q5K'P\UZ'X[^(K77+71+#5+ZV;1)[6":*&W:9
MK5Q<(RR(&D"1E2A8(V[8 #X3^!G_  4*^/O["W_!O#^T%XY\,>/M4USQ)\(_
MC=K_ ,-OAIKFOS&\N;"U.H6EO;2R/+GS#;K=S/&'RN8XTQL 4?1W_!3C]B?P
MQ^S5_P $Q-5_:^_90\;:WX<^-7P@\,6OBJP^+5OK4\VJ^(WM_+DO5U6:1V.I
MQ7,/G%HI]\89EPH0;#O_ +,O_!%GQ7I_[#WQZ_8(_;-\6>%_$?A?XU^/M7\7
M?VSX/:Y@NM(O;Z2VF14BN(RK&WGMHYHY"_)4*T9&2=Z+]@#_ (*!_%/]B*W_
M .":7[2WQS^'UYX"&DVGA[7?BEX<2^7Q)KGAZW9%^RFPFC^SVEW-!$D,EW]I
MN  [L(2Q!H \0_X*;_'34?VH/V:O^"9O[26L:&NF7GC_ /:G^%?B&[T^,'9;
M2WEJ]P\:YY*AI"%)ZC!KUWXB?%S_ (;#_P""Z5U_P3M^)-S/-\,OA=\"?^$Q
MU/P=]H>.U\3ZW=7UK!&]\BD"[M+>VN%VV\F8_.DWL&*)M[#_ (*.?\$XOC%^
MU!;?L\>#?V:=9\#^$?#7P ^)V@>-=+L]<^UN;J32 R6NG)'"A$4 C(!D+LQR
M $&W+6?VI_\ @G1\8/&/[9WP\_X*<?LH>-_#7A3XQ^%_#3>'/&?ASQ$;B?0?
M%NBRDN]E-<0QK/#)%([/%<B%B2D6^+"!0 >-?#W6/%7_  3T_P""]WAO]A_X
M/:KJ!^"?Q]^%U]XBL_ EQ>2367A+7K#[0\TVGK(S?9;>:*W&Z!,1F2XR% 1
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
MSEXR_9<_92T?X-^/ET+5_%MM%/<>*_$-C>SR+XJU><F2[U6Z>>/S%FN9V=Y
M1($#!5)554 %W]@O]I7]G[]KG]D+P%\>?V7H[2V\$ZOX>@31](M(4B&C"%1"
M^G-&GRQ/;LC0E%^4>7\N5P3\V_%_]B+X%_\ !0W]HG]KC]EK]H/0/M>B:[X;
M\"-:WL*K]JTF]2RU+R+ZV<@[)HF.0>C LC!D=E/-?\$P?^"67[<7_!-3]HCX
MCZSX'^+?PRG^"OQ)\97.NM\(K2+4$7PL\LQ(.G7#(1E("L3*T:K*(8O]7M!'
MT/\  +X$?M8> _VS?BA^T/\ $:3X?R^&OB79Z';1:-HVJWK7NB#3+>XC5O-D
MME2\,K3DD;8-@ P6Q@@'YB?\-M_'3]F7]CSX\?\ !$#_ (*6Z]O^)O@OX=7,
MGP=\?W3,L'Q \.)_J=CN?GN(HT..2S)%(C_O+>1G^G_^#M'_ )0K>-_^QK\/
M_P#IQBKW/_@KU_P28^$?_!53X'Z=X9UZ6VT7Q[X.U%=3^'_C%[?<UE.'1I+6
M;;\S6LX0*ZC)5E20 F,*<_\ X+6_\$__ (__ /!3W]DRY_8^^$_C3PAX4TK5
M=5L-0U;Q'X@>ZGN,VTQE$$5M#&% ++$?-:4\;E\OHU 'F_\ P4#_ &7O^"QO
MQB_8 U_X?_!O]L?X;7YU#P:T.L^'M ^%%SH6IZYIS6_^D6-OJ,VJZA';SS0[
MX5;[,!EQ\\?+4G_!&3]HG]E7]H;_ ((;'_AD+X7ZCX*\-^"_"^N>&]3\+:KJ
M(O9['5([5KFY9[H(@N3,;M;DRA(\FX(V)C:/7?B!\(/^"NOQ&^#%Q\&-$^/O
MP/\ A_<:AH_]FW'C?0/"FK:E?6,;1^6TUK;SW44:S!<E6=W"GL>"(OV8?^"9
M&G_\$]/^"<=U^PS^QC>:;?ZEJ5GJ U3Q3XWNI(1=:A>P-'-J,L=M$^\KB%$M
MP4'EQ*IERI9@#RG_ (-6?^4''PB_["'B3_T_ZA7/_LY^)=5\ ?\ !TK^T)\*
M]#D9=(^('[.VA>*=<@C/RMJ&GS6.GP2L!W$-Q*N>OS#UKW?_ ((S?L+_ !Z_
MX)K?L;Z)^QE\6O%OA'Q/IWABZU"?1O$GAY[J&:47=Y)=-%-;S1[1M>:3$BR<
MC:-G!8\7_P $]/@K=?&/_@I5^TA_P5.O(#_PCOBDV'P]^$]PP_X_](TJ.)-1
MU"-NCV]QJ$)$+CATMRXW*Z,0#[KHHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH \@^/7[+FJ_'3Q5#K]W\3?[/M;2U$-G8#1_-$?.7;=YRY
M+'V' 4=LUPW_  [K_P"JP_\ EO\ _P!T5],45^;YMX2>'V>9C5Q^.P;G6J.\
MI.K65WZ*HDE;1)))+1*Q]3@N->)LOPL,-AZ_+"*LER0T^^-_F]6?,_\ P[K_
M .JP_P#EO_\ W17K_P !?A!JOP5\*S>$+OQK_;-J;HS6>=/\@V^X?.O^L?()
MY[8);KGCN:*Z^'O#+@CA7,5C\JPKI54FK^TJO1[IJ4W%KU3U2:U2,<SXMX@S
MC"O#8RMSPNG;E@M5L[J*:^3"BBBOO3YP**** "BBB@ HHHH **** "BBB@!&
M&Y2N2,CJ*\0^!?\ P3Q_9H_9R_: \9_M0?"O3?$]MXU^(DD$GCC5-0\<ZG>Q
MZTT"/' 9X+BX>(^4LCK'A!L!PN!Q7N%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 -FAAN(7M[B)9(W4JZ.N0P/!!!ZBOD!/^"#O_  3'TSQK
M>^-? WP4U_P?_:=XUUJFA^!/B9K^AZ5=3$C+-96-[% @XQLC5%QP5-?8-% '
MS_\ M$?\$MOV#OVI?V:M%_9!^,'[/>FW'P[\.ZU%JVB^'-'O+G3$M;V,3+YP
MDM)(Y"[BXGWDL2YF=FRQW5ZY\(/@_P#"_P" /PRT7X,_!;P+IWAKPMX=L5M-
M%T/2;<106L(R=JJ.I))9F.69F9F)))/244 %8GQ"^&_@?XK>&9/!_P 0O#D&
MIZ>\\4ZQ3%E>&>)Q)#/%(A#PS1R*KQRQLKQNJLK*P!K;HH 9;6Z6EM':QN[+
M$@16ED+L0!C)9B2Q]R<FGT44 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !6#X3^&7@?P1KFM>)_#F@K%JGB*[%QK>IS3/-<W;+N\M&ED9G\N,,RQQ B
M.)2515!Q6]10 4444 %%%% !1110 4444 %%%% &!X'^%_@3X:2ZHW@/P_'I
M46LZC)J%_9VDKK;&ZD8M+,D.?+B>1V:20QJOF2,SON=BQWZ** "BBB@ HHHH
M **** ,GQQX)\.?$;PM=^"O%UK-<:9?H([ZUAO)8//CR"8G:)E8QMC:Z9VNI
M9&#*Q!O:1I&E>']*M=!T'3+>RL;*W2WLK*TA6.*WB10J1HB@!%50 %     J
MQ10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
3 %%%% !1110 4444 %%%% '_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396946176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover Page - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Feb. 24, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34705<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">Codexis,&#160;Inc.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">71-0872999<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">200 Penobscot Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Redwood City<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">94063<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">421-8100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $0.0001 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CDXS<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction [Flag]</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 152.4<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">82,837,311<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentsIncorporatedByReferenceTextBlock', window );">Documents Incorporated by Reference</a></td>
<td class="text"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Portions of the registrant&#8217;s Definitive Proxy Statement to be filed with the Commission pursuant to Regulation 14A in connection with the registrant&#8217;s 2025 Annual Meeting of Stockholders (the &#8220;2025 Proxy Statement&#8221;), to be filed subsequent to the date hereof, are incorporated by reference into Part III of this Report. Such Definitive Proxy Statement will be filed with the Securities and Exchange Commission not later than 120 days after the conclusion of the registrant&#8217;s fiscal year ended December&#160;31, 2024. Except with respect to information specifically incorporated by reference in this Form 10-K, the 2025 Proxy Statement is not deemed to be filed as part of this Form 10-K.<br/></span><span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001200375<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFinStmtErrorCorrectionFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates whether any of the financial statement period in the filing include a restatement due to error correction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFinStmtErrorCorrectionFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentsIncorporatedByReferenceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Documents incorporated by reference.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-23<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentsIncorporatedByReferenceTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_IcfrAuditorAttestationFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398748736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Audit Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AuditorInformationAbstract', window );"><strong>Auditor Information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">KPMG LLP<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">San Francisco, CA<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">185<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AuditorInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Auditor Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AuditorInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396335344">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 19,264<span></span>
</td>
<td class="nump">$ 65,116<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCash', window );">Restricted cash, current</a></td>
<td class="nump">503<span></span>
</td>
<td class="nump">519<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShortTermInvestments', window );">Short-term investments</a></td>
<td class="nump">54,194<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract', window );"><strong>Financial assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableGrossCurrent', window );">Accounts receivable</a></td>
<td class="nump">11,920<span></span>
</td>
<td class="nump">10,036<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetGrossCurrent', window );">Contract assets</a></td>
<td class="nump">4,375<span></span>
</td>
<td class="nump">815<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesCurrent', window );">Unbilled receivables</a></td>
<td class="nump">2,751<span></span>
</td>
<td class="nump">9,142<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NotesReceivableGross', window );">Total financial assets</a></td>
<td class="nump">19,046<span></span>
</td>
<td class="nump">19,993<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForNotesAndLoansReceivableCurrent', window );">Less: allowances</a></td>
<td class="num">(162)<span></span>
</td>
<td class="num">(65)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsNotesAndLoansReceivableNetCurrent', window );">Total financial assets, net</a></td>
<td class="nump">18,884<span></span>
</td>
<td class="nump">19,928<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">1,799<span></span>
</td>
<td class="nump">2,685<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">4,128<span></span>
</td>
<td class="nump">5,218<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">98,772<span></span>
</td>
<td class="nump">93,466<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent', window );">Restricted cash</a></td>
<td class="nump">1,062<span></span>
</td>
<td class="nump">1,062<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsAndOtherNoncurrentAssets', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">2,798<span></span>
</td>
<td class="nump">9,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Right-of-use assets - Operating leases, net</a></td>
<td class="nump">28,700<span></span>
</td>
<td class="nump">13,137<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">14,197<span></span>
</td>
<td class="nump">15,487<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">2,463<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other non-current assets</a></td>
<td class="nump">1,019<span></span>
</td>
<td class="nump">1,246<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">149,011<span></span>
</td>
<td class="nump">136,561<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">2,838<span></span>
</td>
<td class="nump">5,947<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation</a></td>
<td class="nump">11,410<span></span>
</td>
<td class="nump">11,246<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Other accrued liabilities</a></td>
<td class="nump">6,223<span></span>
</td>
<td class="nump">4,735<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current portion of lease obligations - Operating leases</a></td>
<td class="nump">2,827<span></span>
</td>
<td class="nump">3,781<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">350<span></span>
</td>
<td class="nump">10,121<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">23,648<span></span>
</td>
<td class="nump">35,830<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, net of current portion</a></td>
<td class="nump">100<span></span>
</td>
<td class="nump">640<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term lease obligations - Operating leases</a></td>
<td class="nump">28,163<span></span>
</td>
<td class="nump">12,243<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt</a></td>
<td class="nump">28,905<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other long-term liabilities</a></td>
<td class="nump">1,268<span></span>
</td>
<td class="nump">1,233<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">82,084<span></span>
</td>
<td class="nump">49,946<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 13)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $0.0001 par value per share; 200,000 shares authorized; 81,850 and 69,905 shares issued and outstanding at December&#160;31, 2024 and December&#160;31, 2023, respectively</a></td>
<td class="nump">8<span></span>
</td>
<td class="nump">7<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">629,673<span></span>
</td>
<td class="nump">584,138<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive income</a></td>
<td class="nump">52<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(562,806)<span></span>
</td>
<td class="num">(497,530)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">66,927<span></span>
</td>
<td class="nump">86,615<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders&#8217; equity</a></td>
<td class="nump">$ 149,011<span></span>
</td>
<td class="nump">$ 136,561<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsNotesAndLoansReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of accounts and financing receivables, classified as current. Includes, but is not limited to, notes and loan receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsNotesAndLoansReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForNotesAndLoansReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on financing receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForNotesAndLoansReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 30: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsAndOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investments, and noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsAndOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NotesReceivableGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost, before allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-13<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-7A<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-29<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1405<br> -Paragraph a<br> -Subparagraph (1)<br> -Publisher SEC<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1405<br> -Paragraph a<br> -Subparagraph (2)<br> -Publisher SEC<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Regulation S-K (SK)<br> -Number 229<br> -Section 1404<br> -Paragraph a<br> -Publisher SEC<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 80<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479294/326-20-55-80<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 79<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479294/326-20-55-79<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-14<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NotesReceivableGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashAndCashEquivalentsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents restricted as to withdrawal or usage, classified as noncurrent. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 210<br> -Topic 954<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477220/954-210-45-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndCashEquivalentsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483273760">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.0001<span></span>
</td>
<td class="nump">$ 0.0001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">5,000,000<span></span>
</td>
<td class="nump">5,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.0001<span></span>
</td>
<td class="nump">$ 0.0001<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">200,000,000<span></span>
</td>
<td class="nump">200,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">81,850,000<span></span>
</td>
<td class="nump">69,905,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">81,850,000<span></span>
</td>
<td class="nump">69,905,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396097152">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 59,345<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingCostsAndExpensesAbstract', window );"><strong>Costs and operating expenses:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of product revenue</a></td>
<td class="nump">16,288<span></span>
</td>
<td class="nump">12,809<span></span>
</td>
<td class="nump">38,033<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">46,263<span></span>
</td>
<td class="nump">58,885<span></span>
</td>
<td class="nump">80,099<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general and administrative</a></td>
<td class="nump">55,148<span></span>
</td>
<td class="nump">53,250<span></span>
</td>
<td class="nump">52,172<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,284<span></span>
</td>
<td class="nump">3,167<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment and other charges</a></td>
<td class="nump">165<span></span>
</td>
<td class="nump">9,984<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostsAndExpenses', window );">Total costs and operating expenses</a></td>
<td class="nump">117,864<span></span>
</td>
<td class="nump">138,212<span></span>
</td>
<td class="nump">173,471<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Loss from operations</a></td>
<td class="num">(58,519)<span></span>
</td>
<td class="num">(68,069)<span></span>
</td>
<td class="num">(34,881)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentIncomeInterest', window );">Interest income</a></td>
<td class="nump">3,670<span></span>
</td>
<td class="nump">4,172<span></span>
</td>
<td class="nump">1,441<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Interest and other expense, net ($0, $0 and $208 from a related party)</a></td>
<td class="num">(10,393)<span></span>
</td>
<td class="num">(12,274)<span></span>
</td>
<td class="nump">124<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">(65,242)<span></span>
</td>
<td class="num">(76,171)<span></span>
</td>
<td class="num">(33,316)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">34<span></span>
</td>
<td class="nump">69<span></span>
</td>
<td class="nump">276<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (65,276)<span></span>
</td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net loss per share, basic (in dollars per share)</a></td>
<td class="num">$ (0.89)<span></span>
</td>
<td class="num">$ (1.12)<span></span>
</td>
<td class="num">$ (0.51)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net loss per share, diluted (in dollars per share)</a></td>
<td class="num">$ (0.89)<span></span>
</td>
<td class="num">$ (1.12)<span></span>
</td>
<td class="num">$ (0.51)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average common stock shares used in computing net loss per share, basic (in shares)</a></td>
<td class="nump">73,408<span></span>
</td>
<td class="nump">68,131<span></span>
</td>
<td class="nump">65,344<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average common stock shares used in computing net loss per share, diluted (in shares)</a></td>
<td class="nump">73,408<span></span>
</td>
<td class="nump">68,131<span></span>
</td>
<td class="nump">65,344<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue ($0, $0 and $514 from a related party)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 36,786<span></span>
</td>
<td class="nump">$ 42,906<span></span>
</td>
<td class="nump">$ 116,676<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue ($0, $0 and $1,245 from a related party)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 22,559<span></span>
</td>
<td class="nump">$ 27,237<span></span>
</td>
<td class="nump">$ 21,914<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostsAndExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total costs of sales and operating expenses for the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostsAndExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingCostsAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingCostsAndExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395867856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 59,345<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Interest and other expense, net</a></td>
<td class="num">(10,393)<span></span>
</td>
<td class="num">(12,274)<span></span>
</td>
<td class="nump">124<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Interest and other expense, net</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">208<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">36,786<span></span>
</td>
<td class="nump">42,906<span></span>
</td>
<td class="nump">116,676<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">514<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">22,559<span></span>
</td>
<td class="nump">27,237<span></span>
</td>
<td class="nump">21,914<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,245<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394215200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Comprehensive Loss - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Loss</a></td>
<td class="num">$ (65,276)<span></span>
</td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract', window );"><strong>Other comprehensive gain:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Unrealized gain on available-for-sale short-term investments, net of tax</a></td>
<td class="nump">52<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive loss</a></td>
<td class="num">$ (65,224)<span></span>
</td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395816000">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Additional Paid-in Capital</div></th>
<th class="th"><div>Accumulated Other Comprehensive Income (Loss)</div></th>
<th class="th"><div>Accumulated Deficit</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at beginning of period (in shares) at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65,109,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at beginning of period at Dec. 31, 2021</a></td>
<td class="nump">$ 164,391<span></span>
</td>
<td class="nump">$ 6<span></span>
</td>
<td class="nump">$ 552,083<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (387,698)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock upon exercise of stock options (in shares)</a></td>
<td class="nump">410,000<span></span>
</td>
<td class="nump">410,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock upon exercise of stock options</a></td>
<td class="nump">$ 955<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">955<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Issuance of common stock upon release of stock awards (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">373,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">14,531<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">14,531<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(81,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="num">(1,488)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,488)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Loss</a></td>
<td class="num">(33,592)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(33,592)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at end of period (in shares) at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65,811,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at end of period at Dec. 31, 2022</a></td>
<td class="nump">$ 144,797<span></span>
</td>
<td class="nump">$ 6<span></span>
</td>
<td class="nump">566,081<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(421,290)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock upon exercise of stock options (in shares)</a></td>
<td class="nump">283,000<span></span>
</td>
<td class="nump">283,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock upon exercise of stock options</a></td>
<td class="nump">$ 559<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">559<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Issuance of common stock upon release of stock awards (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">796,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock in connection with an equity sales agreement, net of issuance costs (in shares)</a></td>
<td class="nump">3,079,421<span></span>
</td>
<td class="nump">3,080,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common stock in connection with an equity sales agreement, net of issuance costs</a></td>
<td class="nump">$ 7,932<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">7,931<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">9,971<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,971<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(65,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="num">(404)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(404)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Loss</a></td>
<td class="num">(76,240)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(76,240)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at end of period (in shares) at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">69,905,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at end of period at Dec. 31, 2023</a></td>
<td class="nump">$ 86,615<span></span>
</td>
<td class="nump">$ 7<span></span>
</td>
<td class="nump">584,138<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(497,530)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock upon exercise of stock options (in shares)</a></td>
<td class="nump">399,000<span></span>
</td>
<td class="nump">399,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock upon exercise of stock options</a></td>
<td class="nump">$ 1,291<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,291<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Issuance of common stock upon release of stock awards (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">842,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued', window );">Issuance of common stock warrants in connection with debt issuance</a></td>
<td class="nump">859<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">859<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans', window );">Issuance of common stock under employee stock purchase plan (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">264,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan', window );">Issuance of common stock under employee stock purchase plan</a></td>
<td class="nump">$ 563<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">563<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock in connection with an equity sales agreement, net of issuance costs (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">10,440,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common stock in connection with an equity sales agreement, net of issuance costs</a></td>
<td class="nump">$ 29,736<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">29,735<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">13,087<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,087<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Loss</a></td>
<td class="num">(65,276)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(65,276)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive loss</a></td>
<td class="nump">52<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">52<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance at end of period (in shares) at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">81,850,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at end of period at Dec. 31, 2024</a></td>
<td class="nump">$ 66,927<span></span>
</td>
<td class="nump">$ 8<span></span>
</td>
<td class="nump">$ 629,673<span></span>
</td>
<td class="nump">$ 52<span></span>
</td>
<td class="num">$ (562,806)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in additional paid in capital (APIC) resulting from the issuance of warrants. Includes allocation of proceeds of debt securities issued with detachable stock purchase warrants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 25<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481284/470-20-25-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of other comprehensive income (loss) attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued which are neither cancelled nor held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued during the period as a result of an employee stock purchase plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of stock issued attributable to transactions classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395728848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Statement of Stockholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfStockIssuanceCosts', window );">Costs incurred in connection with offering</a></td>
<td class="nump">$ 1,584<span></span>
</td>
<td class="nump">$ 721<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfStockIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for cost incurred directly with the issuance of an equity security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfStockIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398382656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Loss</a></td>
<td class="num">$ (65,276)<span></span>
</td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net loss to net cash provided by (used in) operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">4,946<span></span>
</td>
<td class="nump">5,518<span></span>
</td>
<td class="nump">5,402<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Reduction in the carrying amount of right-of-use assets</a></td>
<td class="nump">3,184<span></span>
</td>
<td class="nump">4,405<span></span>
</td>
<td class="nump">4,849<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">13,087<span></span>
</td>
<td class="nump">9,971<span></span>
</td>
<td class="nump">14,531<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Provision (recovery) for credit losses</a></td>
<td class="nump">97<span></span>
</td>
<td class="num">(65)<span></span>
</td>
<td class="nump">4<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment and other charges</a></td>
<td class="nump">165<span></span>
</td>
<td class="nump">9,984<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="nump">6,902<span></span>
</td>
<td class="nump">12,215<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncome', window );">Equity securities earned from research and development activities ($0, $0, and ($1,245) from a related party)</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(213)<span></span>
</td>
<td class="num">(1,245)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss', window );">Unrealized gain on non-marketable securities ($0, $0, and ($208) from a related party)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(208)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfFinancingCosts', window );">Non-cash interest expense</a></td>
<td class="nump">885<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AmortizationOfDiscountOnShortTermInvestments', window );">Amortization of discount on short-term investments</a></td>
<td class="num">(1,380)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherOperatingActivitiesCashFlowStatement', window );">Other non-cash items</a></td>
<td class="num">(4)<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="num">(29)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInFinanceReceivables', window );">Financial assets</a></td>
<td class="nump">1,252<span></span>
</td>
<td class="nump">20,247<span></span>
</td>
<td class="num">(3,225)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="nump">886<span></span>
</td>
<td class="num">(656)<span></span>
</td>
<td class="num">(869)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="nump">893<span></span>
</td>
<td class="num">(865)<span></span>
</td>
<td class="nump">181<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(2,567)<span></span>
</td>
<td class="nump">2,287<span></span>
</td>
<td class="nump">207<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities', window );">Accrued compensation and other accrued liabilities</a></td>
<td class="nump">1,982<span></span>
</td>
<td class="num">(14,041)<span></span>
</td>
<td class="nump">5,983<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities', window );">Other long-term liabilities</a></td>
<td class="num">(4,151)<span></span>
</td>
<td class="num">(5,341)<span></span>
</td>
<td class="num">(5,223)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="num">(10,311)<span></span>
</td>
<td class="num">(19,848)<span></span>
</td>
<td class="nump">24,518<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by (used in) operating activities</a></td>
<td class="num">(49,410)<span></span>
</td>
<td class="num">(52,638)<span></span>
</td>
<td class="nump">11,284<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchase of property and equipment</a></td>
<td class="num">(4,305)<span></span>
</td>
<td class="num">(4,418)<span></span>
</td>
<td class="num">(8,307)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sale of property and equipment</a></td>
<td class="nump">87<span></span>
</td>
<td class="nump">751<span></span>
</td>
<td class="nump">29<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireShortTermInvestments', window );">Purchases of short-term investments</a></td>
<td class="num">(90,235)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments', window );">Proceeds from maturity of short-term investments</a></td>
<td class="nump">35,500<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfShortTermInvestments', window );">Proceeds from sale of short-term investments</a></td>
<td class="nump">1,973<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investment in non-marketable securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,191)<span></span>
</td>
<td class="num">(5,300)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(56,980)<span></span>
</td>
<td class="num">(4,858)<span></span>
</td>
<td class="num">(13,578)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from exercises of stock options</a></td>
<td class="nump">1,384<span></span>
</td>
<td class="nump">422<span></span>
</td>
<td class="nump">955<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockPlans', window );">Proceeds from issuance of stock under employee stock purchase plan</a></td>
<td class="nump">646<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Proceeds from issuance of common stock in connection with equity sales agreements</a></td>
<td class="nump">31,319<span></span>
</td>
<td class="nump">8,652<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements', window );">Costs incurred in connection with equity sales agreements</a></td>
<td class="num">(1,706)<span></span>
</td>
<td class="num">(503)<span></span>
</td>
<td class="num">(42)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt', window );">Proceeds from long-term debt</a></td>
<td class="nump">29,521<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfDebtIssuanceCosts', window );">Payment of debt issuance costs</a></td>
<td class="num">(642)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Taxes paid related to net share settlement of equity awards</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(404)<span></span>
</td>
<td class="num">(1,488)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by (used in) financing activities</a></td>
<td class="nump">60,522<span></span>
</td>
<td class="nump">8,167<span></span>
</td>
<td class="num">(575)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net decrease in cash, cash equivalents and restricted cash</a></td>
<td class="num">(45,868)<span></span>
</td>
<td class="num">(49,329)<span></span>
</td>
<td class="num">(2,869)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash, cash equivalents and restricted cash at the beginning of the year</a></td>
<td class="nump">66,697<span></span>
</td>
<td class="nump">116,026<span></span>
</td>
<td class="nump">118,895<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash, cash equivalents and restricted cash at the end of the year</a></td>
<td class="nump">20,829<span></span>
</td>
<td class="nump">66,697<span></span>
</td>
<td class="nump">116,026<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental disclosure of cash flow information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest paid</a></td>
<td class="nump">2,566<span></span>
</td>
<td class="nump">44<span></span>
</td>
<td class="nump">34<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes</a></td>
<td class="nump">17<span></span>
</td>
<td class="nump">194<span></span>
</td>
<td class="nump">100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Supplemental non-cash investing and financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid', window );">Capital expenditures incurred but not yet paid</a></td>
<td class="nump">566<span></span>
</td>
<td class="nump">1,068<span></span>
</td>
<td class="nump">897<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash reconciliation:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">19,264<span></span>
</td>
<td class="nump">65,116<span></span>
</td>
<td class="nump">113,984<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndCashEquivalents', window );">Restricted cash, current and non-current</a></td>
<td class="nump">1,565<span></span>
</td>
<td class="nump">1,581<span></span>
</td>
<td class="nump">2,042<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Total cash, cash equivalents and restricted cash at the end of the period</a></td>
<td class="nump">$ 20,829<span></span>
</td>
<td class="nump">$ 66,697<span></span>
</td>
<td class="nump">$ 116,026<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AmortizationOfDiscountOnShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortization Of Discount On Short-term Investments</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AmortizationOfDiscountOnShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_CostsIncurredInConnectionWithEquitySalesAgreements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Costs Incurred In Connection With Equity Sales Agreements</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CostsIncurredInConnectionWithEquitySalesAgreements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense attributable to debt issuance costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(d)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss on investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-11<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInFinanceReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in outstanding loans including accrued interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInFinanceReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in noncurrent operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNoncashIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherOperatingActivitiesCashFlowStatement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Other cash or noncash adjustments to reconcile net income to cash provided by (used in) operating activities that are not separately disclosed in the statement of cash flows (for example, cash received or cash paid during the current period for miscellaneous operating activities, net change during the reporting period in other assets or other liabilities).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherOperatingActivitiesCashFlowStatement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfDebtIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfDebtIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for securities or other assets acquired, which qualify for treatment as an investing activity and are to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from sales of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockPlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the amount received from the stock plan during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockPlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashAndCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393781152">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncome', window );">Other noncash income</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 213<span></span>
</td>
<td class="nump">$ 1,245<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss', window );">Unrealized gain on non-marketable securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">208<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShortTermInvestments', window );">Short-term investments</a></td>
<td class="nump">54,194<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsAndShortTermInvestments', window );">Cash, cash equivalents, and short-term investments</a></td>
<td class="nump">73,458<span></span>
</td>
<td class="nump">65,116<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNoncashIncome', window );">Other noncash income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,245<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss', window );">Unrealized gain on non-marketable securities</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (208)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsAndShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash includes currency on hand as well as demand deposits with banks or financial institutions. It also includes other kinds of accounts that have the general characteristics of demand deposits in that the customer may deposit additional funds at any time and effectively may withdraw funds at any time without prior notice or penalty. Cash equivalents, excluding items classified as marketable securities, include short-term, highly liquid Investments that are both readily convertible to known amounts of cash, and so near their maturity that they present minimal risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify under that definition. Original maturity means original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three years ago does not become a cash equivalent when its remaining maturity is three months. Short-term investments, exclusive of cash equivalents, generally consist of marketable securities intended to be sold within one year (or the normal operating cycle if longer) and may include trading securities, available-for-sale securities, or held-to-maturity securities (if maturing within one year), as applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsAndShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(d)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNoncashIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNoncashIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483369728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of Business<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NatureOfOperations', window );">Description of Business</a></td>
<td class="text">Description of Business <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In these notes to the consolidated financial statements, the &#8220;Company,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;we,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> &#8220;us,</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and &#8220;our</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> refers to Codexis, Inc. and its subsidiaries on a consolidated basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins leveraging our proprietary CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">directed evolution technology platform. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the third and fourth quarters of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our Chief Executive Officer (&#8220;CEO&#8221;), our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocates resources based on the consolidated results of operations. We believe that these changes better align internal resources to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment since the fourth quarter of 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/275/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NatureOfOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394278928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock', window );">Basis of Presentation and Summary of Significant Accounting Policies</a></td>
<td class="text">Basis of Presentation and Summary of Significant Accounting Policies<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) and the applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Foreign Currency Translation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. Some of our contracts with customers contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a description of principal activities from which we generate revenue:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer which generally aligns with shipping terms, or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#8217;s use. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Practical Expedients, Elections, and Exemptions</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to treat shipping and handling activities as fulfillment costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to record revenue net of sales and other similar taxes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Assets </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Costs</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $1.0&#160;million, and $3.0&#160;million for the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Research and Development Services</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Advertising</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations. Advertising costs were nil, $0.3 million, and $0.3 million for each of the years ended December 31, 2024, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restricted Stock Units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSUs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), Restricted Stock Awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs&#8221;) and performance-contingent restricted stock units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PSUs&#8221;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PBOs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash and Cash Equivalents</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Cash</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are currently in the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations. This balance is recorded as current restricted cash on the consolidated balance sheets of </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.5 million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2024 and 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million as of&#160;December&#160;31, 2024 and 2023. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets. For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Short-term Investments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We classify all marketable debt securities that have effective maturities of three months or less from the date of purchase as cash equivalents and those with effective maturities of greater than three months as short-term investment securities in the consolidated balance sheets. We determine the appropriate classification of our short-term investments at the time of purchase and reevaluate such designation at each balance sheet date. We have classified and accounted for our short-term investments as available-for-sale. After consideration of our risk versus reward objectives, as well as our liquidity requirements, we may sell these debt securities prior to their effective maturities.  </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We carry these short-term investments at fair value, and report the unrealized gains and losses, net of taxes, as a component of stockholders&#8217; equity, except for the changes in allowance for expected credit losses, which are included in &#8220;Interest and other expense, net&#8221; in the consolidated statements of operations. We determine any realized gains or losses on the sale of short-term investments on a specific identification method, and we record such gains and losses as a component of interest income.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Short-term investments are reviewed periodically for allowances for credit losses and impairment. When evaluating the investments, the Company reviews factors such as the extent to which the fair value of the security is less than the amortized cost basis, adverse conditions specifically related to the security, the financial condition of the issuer, the Company&#8217;s intent to sell, and whether it would be more likely than not that the Company would be required to sell the investments before the recovery of the amortized cost basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fair Value Measurements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#8217;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life. </span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#8217;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Credit Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2024, we h</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ad four customers that accounted for 56% of our ac</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">counts receivable balance. As of December&#160;31, 2023, four customers accounted for 58% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Financial Assets and Allowances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#8220;current expected credit loss model&#8221; or &#8220;CECL&#8221;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#8220;ACL&#8221;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unbilled Receivable</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Supply Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">-</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the years ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2024 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 8, &#8220;Balance Sheet Details&#8221; and Note 13, &#8220;Commitments and Contingencies.&#8221; No impairment charges for long-lived assets were recorded during the year ended December 31, 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in interest and other expense, net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted. For additional information on the impairment charge recorded for the year ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2024 and 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 6, &#8220;Investments in Non-Marketable Securities.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment, considering, among other factors, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of $2.5 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of December&#160;31, 2024 and 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative &#8220;Step 0&#8221; assessment based on reviewing relevant events and circumstances; or a quantitative &#8220;Step 1&#8221; assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. No impairment charges related to goodwill were recognized in 2024. We recorded impairment charges related to goodwill of $0.8&#160;million for the year ended December 31, 2023. For additional information on the impairment charge recorded in 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ee Note 8, &#8220;Balance Sheet Details.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease Accounting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. In the event that it is determined that these deferred tax assets are not more likely than not to be realized, a valuation allowance is recorded against these deferred tax assets. As of December&#160;31, 2024 and 2023, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) 2009-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#8217;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#8220;NOL</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) No. 2023-07,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. The Company adopted ASU No. 2023-07 during the year ended December&#160;31, 2024. For additional information, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aside from those recently issued accounting pronouncements adopted and described above and not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2024 that are of significance or potential significance to us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the FASB issued ASU No. 2024-03, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement-Reporting Comprehensive Income-Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendment in the ASU will require additional disclosures and disaggregation of certain costs and expenses presented on the face of the income statement. This guidance is effective for the Company for fiscal years beginning after December 15, 2026. Early adoption is permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2024, the FASB issued ASU No. 2024-02, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements - Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU amends the FASB Accounting Standard Codification (the &#8220;ASC&#8221;) to remove references to various concepts statements and impacts a variety of topics in the ASC. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. If an entity adopts the amendments in an interim period, it must adopt them as of the beginning of the fiscal year that includes that interim period. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, FASB issued ASU No. 2023-09,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU require public companies, on an annual basis, to provide disclosures of specific categories in the rate reconciliation, as well as disclosure of income taxes paid disaggregated by jurisdiction. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2023, FASB issued ASU No. 2023-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Disclosure Improvements: Codification Amendments in Response to the SEC&#8217;s Disclosure Update and Simplification Initiative</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the ASC. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#8217;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the general note to the financial statements for the reporting entity which may include, descriptions of the basis of presentation, business description, significant accounting policies, consolidations, reclassifications, new pronouncements not yet adopted and changes in accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 275<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/275/tableOfContent<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/810/tableOfContent<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 250<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/250/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393866880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Disaggregation of Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China). </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disaggregated information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36,786&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,559&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,359&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,708&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For additional information regarding revenue disaggregated by geography, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Balances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, and contract liabilities (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">815&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,208&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,904&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">450&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,761&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable when we have an unconditional right to recognize revenue and have issued an invoice to the customer. Our payment terms are generally between 30 and 90 days. We recognize unbilled receivables when we have an unconditional right to recognize revenue and have not issued an invoice to our customer. Unbilled receivables are transferred to accounts receivable on issuance of an invoice. Unbilled receivables are classified separately on the consolidated balance sheets as an asset. We maintain an allowance for credit losses on accounts receivables and unbilled receivables. As of December&#160;31, 2024, we have $2.8 million of short-term unbilled receivables presented as unbilled receivables within current assets and $0.5 million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. As of December&#160;31, 2023, we had $9.1 million of short-term unbilled receivables presented as unbilled receivables within current asset and $0.8 million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets represent our right to recognize revenue for custom products with no alternate use and under binding non-cancellable contracts and are largely related to our procurement of product. We recognize contract assets when we have a conditional right to recognize revenue. The transfer of control of certain products occurs in advance of the invoicing process, which generates contract assets. In addition, we recognize a contract asset related to milestones when we assess it is probable of being achieved and there will be no significant reversal of cumulative revenues. Contract assets are classified separately on the consolidated balance sheets as an asset and transferred to accounts receivables when our rights to payment become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities, or deferred revenue, represent our obligation to transfer a product or service to the customer, and for which we have received consideration from the customer. We recognize a contract liability when we receive advance customer payments under development agreements for research and development services, upfront license payments, and from upfront customer payments received under product supply agreements. Contract liabilities are classified as a liability on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the years ended December&#160;31, 2024, 2023 and 2022, we had no asset impairment charges related to contract assets. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized the following revenues (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,121&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,937&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">314&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,910&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,041&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance Obligations</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of December&#160;31, 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:32.964%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.624%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2026</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2027</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2028 and Thereafter</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">350&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">450&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393865824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Loss per Share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Net Loss per Share</a></td>
<td class="text">Net Loss per Share<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, diluted and basic net loss per share are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Anti-Dilutive Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plans and ESPP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,613&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,028&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,442&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warrants</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">424&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total potentially dilutive securities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,037&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,028&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,442&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Included 665,160 and 568,224 of anti-dilutive potential common shares from ESPP for the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> Pertains to the warrants issued in connection with the Innovatus Loan. For additional information, see Note 14, &#8220;Debt.&#8221;</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393827376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentAbstract', window );"><strong>Research and Development [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementDisclosureTextBlock', window );">Collaborative Arrangements</a></td>
<td class="text">Collaborative Arrangements<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Merck Sitagliptin Catalyst Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In February 2012, we entered into a five-year Sitagliptin Catalyst Supply Agreement (&#8220;Sitagliptin Supply Agreement&#8221;) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its options under the terms of the Sitagliptin Supply Agreement to extend the agreement for an additional five years through February 2022. In September 2021, the Sitagliptin Supply Agreement was amended to extend the agreement through December 2026. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized $7.1 million, $4.4 million and $5.9 million in product revenue under this agreement in the years ended December 31, 2024, 2023 and 2022, respectively. This represented 12%, 6%, and 4% of our total revenues in the years ended December 31, 2024, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, we recorded revenue of $2.5 million from sitagliptin enzyme sales that were recognized over time based on the progress of the manufacturing process. These products will be </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">shipped within the three-month period following the end of 2024. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Enzyme Supply Agreement and Commercial Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2016, we entered into an enzyme supply agreement with a customer, receiving an upfront payment recorded as deferred revenue which was recognized as the customer purchased our enzyme. In April 2019, we entered into a multi-year commercial agreement with the same customer for the exclusive use of our enzymes in some of their products, with royalties to be earned. Both the enzyme supply agreement and commercial agreement were terminated in 2023. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Due to the early termination of the enzyme supply agreement in 2023, we recognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$3.2 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of product revenue from the release of prior periods' product revenue deferrals and also recognized an additional </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.3 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of product revenue as settlement fee.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2017, we entered into the Nestl&#233; Strategic Collaboration Agreement (the &#8220;Nestl&#233; SCA&#8221;) with Nestl&#233;, pursuant to which we and Nestl&#233; collaborated to leverage the CodeEvolver technology platform to develop novel enzymes for Nestl&#233;&#8217;s established Consumer Care and Medical Nutrition business areas.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2020, we entered into a development agreement with Nestl&#233; pursuant to which we and Nestl&#233; collaborated to advance a lead candidate discovered through our Nestl&#233; SCA, CDX-7108, targeting exocrine pancreatic insufficiency, into preclinical and early clinical studies. We, together with Nestl&#233; Health Science, initiated a Phase 1 clinical trial of CDX-7108 in the fourth quarter of 2021, and </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on February 23, 2023, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we and Nestl&#233; announced interim results. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced plans to discontinue our development support of CDX-7108. Both the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Nestl&#233; SCA and development agreement were terminated in January 2024 under the terms of the CDX-7108 Acquisition Agreement with Nestl&#233;.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Nestl&#233; SCA and the development agreement, we recognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nil</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $4.1&#160;million and $7.1&#160;million in research and development revenue in the years ended December&#160;31, 2024, 2023 and 2022, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Acquisition Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we entered into an acquisition agreement (the &#8220;Acquisition Agreement&#8221;) with Nestl&#233;, pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#233;. Under the terms of the Acquisition Agreement, Nestl&#233; will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, and Codexis will receive upfront payment, future potential milestone payments and net-sales based royalties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0&#160;million </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">in research and development revenue </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">or the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31, 2023 related to the Acquisition Agreement, with the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$5.0&#160;million upfront fee received in January 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Platform Technology Transfer and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2019, we entered into the Novartis CodeEvolver Agreement with Novartis. The Novartis CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Agreement allows Novartis to use our proprietary CodeEvolver technology platform in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver technology platform to Novartis (the &#8220;Technology Transfer Period&#8221;). As a part of this technology transfer, we provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver technology platform at its designated laboratory.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the agreement, we received an upfront payment of $5.0&#160;million shortly after the effective date of the Novartis CodeEvolver Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $4.0&#160;million. We have also received an aggregate of $5.0 million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#8220;Improvements Term&#8221;), Novartis will pay Codexis annual payments over four years which amount to an additional $8.0&#160;million in aggregate. We received an aggregate of $6.0&#160;million for the first three annual payments in 2022 to 2024. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized overtime based on hours incurred. Revenue allocated to improvements made during the Improvements Term is being recognized during the Improvements Term. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognized </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $1.1 million and $1.0 million in research and development revenue in the years ended December&#160;31, 2024, 2023 and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">In December 2019, we entered a license agreement with Roche to provide Roche with our evolved T4 DNA ligase high-performance molecular diagnostic enzyme. The royalty bearing license grants Roche worldwide rights to include the evolved T4 DNA ligase in its nucleic acid sequencing products and workflows. Under the license agreement, we received an initial collaboration fee payment of $0.8 million within 45 days of the effective date of the agreement, and we received an additional $0.9 million milestone payment after the completion of technology transfer in October 202</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">0. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior 2019 agreement. Under the terms of the deal, we received upfront and technical milestones payments. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">We recognized research and development fees </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">of $6.0&#160;million in the year ended December 31, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%">2024 related to the license agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Strategic Collaboration and License Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, we entered into a Strategic Collaboration and License Agreement (the &#8220;Takeda Agreement&#8221;) with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (&#8220;Takeda&#8221;), pursuant to which we have collaborated with Takeda to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $8.5&#160;million and we initiated activities under three program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the &#8220;Initial Programs&#8221;). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. We completed the research and development services relating to the fourth program with Takeda during the second quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the Takeda Agreement, we were eligible to receive other payments that included (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">i) clinical development and commercialization-based milestones, per target gene, of up to $104.0 million and (ii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits. Takeda announced in April 2023 the discontinuation of these development programs, and in 2024 we divested our rights in some of the underlying assets to Crosswalk Therapeutics.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $0.8 million, $2.0 million and $4.9 million in the years ended December 31, 2024, 2023, and 2022, respectively. As of December&#160;31, 2024 and 2023, we had deferred revenue balances of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nil</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2020, we entered into a Stock Purchase Agreement with MAI in which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Concurrently with our initial equity investment, we entered into the MAI Agreement, pursuant to which we performed services utilizing our CodeEvolver technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which are valued based on the observed transaction price of similar securities of MAI issued to third parties. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the MAI Agreement, we will have the right to use and sell the engineered enzymes to third parties for any purpose other than for the synthesis of native DNA. Under the MAI Agreement, we would make a $0.5&#160;million payment to MAI upon our achievement of a milestone of $5.0&#160;million in aggregate commercial sales to third parties of the engineered enzymes or any product incorporating or derived from the engineered enzymes for any purpose other than the synthesis of native DNA. As contemplated in the MAI Agreement, we executed the Commercial License and Enzyme Supply Agreement with MAI (&#8220;MAI Supply Agreement&#8221;) in July 2022 following the completion of certain timelines specified in the SOW.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e completed the R&amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of MAI Series B preferred stock. Upon execution of the MAI Supply Agreement in July 2022, we received the commercialization and enzyme supply agreement milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of MAI Series B preferred stock. Pursuant to the MAI Agreement, we recognized nil , nil, and $1.2 million in research and development revenue from transactions with MAI in the years ended December&#160;31, 2024, 2023, and 2022, respectively. Payment for the services rendered was received in the form of additional MAI Series A and Series B preferred stock. We received an aggregate of nil, nil, and 1,587,049 shares of MAI's Series A and B preferred stock in the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase enzyme in MAI&#8217;s Fully Enzymatic Synthesis technology. Pursuant to the MAI Supply Agreement, we recognized $0.1 million of minimum royalty as part of the research and development revenue in the year ended December&#160;31, 2024. In January 2025, MAI assigned the MAI Supply Agreement to a third party in connection with the sale of its related assets to such third party. We recognized </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.2 million, $0.2&#160;million, and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.5 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> in product revenue in the years ended December&#160;31, 2024, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023, and 2022, respectively</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">MAI was considered a related party until August 2022, when the related party relationship ended following the retirement of our former President and CEO, who also served on MAI&#8217;s board of directors.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Pfizer Enzyme Supply Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During 2021 and 2022, we received purchase orders from Pfizer for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are a party to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#8220;Pfizer Supply Agreement&#8221;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $25.9&#160;million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, 90% of the fee ($23.3&#160;million) is creditable against (i) future orders of CDX-616 used to manufacture its PAXLOVID with shipment dates prior to December 31, 2023, and (ii) fees associated with any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $23.3&#160;million credit towards a license to develop future product candidates, for which we recognized $5.0&#160;million as non-cash research and development revenue in the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April 4, 2023. We also recognized $2.0&#160;million of non-cash research and development revenue, and credited against the $25.9&#160;million fee, for other services provided to Pfizer during the year ended December 31, 2023. Up to 50% of any portion of the $25.9&#160;million which has not been credited under items (i) and (ii) was creditable against future orders of CDX-616 used to manufacture PAXLOVID with shipment dates in 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On December 20, 2024, we entered into a license agreement whereby Pfizer utilized the remaining credit toward the upfront fee under the license agreement, pursuant to the terms of the same-day amendment to the Pfizer Supply Agreement that allowed the product credit to be utilized for this license. We recognized $9.5&#160;million of non-cash research and development revenue in the year ended December 31, 2024 related to the license agreement, and no further credit remains available for Pfizer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the fourth quarter of 2023, and pursuant to the Pfizer Supply Agreement, we released the prior year deferrals for the unused portion of the retainer fee that is not creditable beyond 2023 and we recognized product revenue of $8.2&#160;million in the year ended December 31, 2023. We recognized product revenue of $75.4&#160;million in the year ended December&#160;31, 2022, from the sale of quantities of CDX-616 to Pfizer. Product revenues recognized by us from the Pfizer Supply Agreement represented 0%, 12%, and 54% of our total revenues for the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023</span>, we had nil and $9.5&#160;million, respectively, in deferred revenue related to the $25.9&#160;million fee received from Pfizer.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CollaborativeArrangementDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for collaborative arrangements in which the entity is a participant, including a) information about the nature and purpose of such arrangements; b) its rights and obligations thereunder; c) the accounting policy for collaborative arrangements; and d) the income statement classification and amounts attributable to transactions arising from the collaborative arrangement between participants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 808<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479402/808-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 808<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479402/808-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 808<br> -Publisher FASB<br> -URI https://asc.fasb.org/808/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CollaborativeArrangementDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483405232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract', window );"><strong>Investments, Debt and Equity Securities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock', window );">Investments in Non-Marketable Securities</a></td>
<td class="text">Investments in Non-Marketable Securities<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in MAI and seqWell. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy when we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. The fair value of non-marketable equity securities are classified within Level 3 when we estimate fair value using unobservable inputs such as when we remeasure due to impairment and we use discount rates, market data of comparable companies, and rights and obligations of the securities the Company holds, among others. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component interest and other expense, net in the consolidated statements of operations.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the 207,070 shares of Arzeda&#8217;s Series B preferred stock were converted into 41,414 common stock pursuant to the Stock Purchase Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2023, we purchased an additional</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 985,545 shares of Series B preferred stock for $0.8 million in </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">MAI, a privately held life sciences company</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. As of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we held an aggregate of 19,277,914 shares of MAI's Series A and B preferred stock that we have earned or purchased from MAI.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, we entered into a Stock Purchase Agreement with seqWell, a privately held life sciences company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#8220;seqWell Agreement&#8221;), pursuant to which we provided research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. In January 2025, we sold </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">assets that were developed under the seqWell Agreement to seqWell in exchange for the right to receive a cash payment upon future events and a warrant to purchase seqWell&#8217;s common stock exercisable upon future events, and terminated the seqWell Agreement. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional 88,256 shares of seqWell's Series C-1 preferred stock and 44,128 common stock warrants for $0.4 million. We received 205,279 shares of seqWell's common stock from research and development services with seqWell and we recognized $0.2&#160;million in research and development revenue from these services in the year ended December 31, 2023. As of December&#160;31, 2024, we held an aggregate of 1,088,256 shares of Series C and C-1 preferred stock, 205,279 shares of common stock and 44,128 of common stock warrants that we have earned or purchased from seqWell.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2024, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">we recognized an impairment charge of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$6.9 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> which is presented within interest and other expense, net in the consolidated statements of operations. This adjustment included the write-down of our investment in MAI by </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$3.9 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> during the third quarter of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> to its related fair value as determined based on valuation methods using the latest observed transaction price of MAI&#8217;s preferred stock securities anticipated to be issued during the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">fourth quarter</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and adjusted for the rights and obligations of the preferred stock securities the Company holds, and an additional </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$2.8 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> impairment charge during the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">fourth quarter</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024 to adjust the carrying value of our investment to zero as the investee ceased its operations </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">during the </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">fourth quarter</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2024 due to liquidity position and lack of access to additional capital</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The other $0.2 million of impairment charge on our investment in seqWell is related to the write-down to its estimated fair value using the recent transaction price of similar preferred stock securities issued by the investee and adjusted for the rights and obligations of the preferred stock securities the Company holds.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December 31, 2023, we recognized an impairment charge of $12.2&#160;million and included this as adjustment to the carrying value of our investments in seqWell, Arzeda and MAI. This adjustment, which is presented within other income (expense), net in the consolidated statements of operations, included the write-down of the carrying value of our investment in seqWell by $3.0&#160;million during the third quarter of 2023 to its estimated fair value as determined based on valuation methods using the recent transaction price of similar preferred stock securities issued by seqWell and adjusted for the rights and obligations of the preferred stock securities the Company holds. The $1.2&#160;million of impairment charge on our investment in Arzeda is related to the write-down to its estimated fair value based on the latest observed transaction price of Arzeda's preferred stock securities issued during the fourth quarter of 2023 and the subsequent conversion of our existing Series B preferred stock into Arzeda's common stock during the fourth quarter of 2023. The other $8.0&#160;million of impairment charge represents the difference between the estimated fair value and carrying value of our investment in MAI as of December 31, 2023 based on quantitative and qualitative analysis. This analysis involved use of judgment, estimates and assumptions, such as the near-term prospects of the investee in the market in which it operates, evaluation of the investee&#8217;s financial condition in relation to its outstanding obligations, and probabilities of securing additional capital through various alternative scenarios.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December 31, 2022, we recogniz</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ed a $0.2 million u</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nrealized gain in interest and other expense, net, and included as adjustment to the carrying value of our investment in MAI, for the remeasurement of the additional 1,587,049 shares of Series B preferred stock received as a milestone payment during the third quarter of 2022 based on the latest observed transaction price of MAI's preferred stock.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other than as disclosed above, there were no remeasurement events for our investments in non-marketable equity securities in 2024 and 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We recognized no realized gains or losses during the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">seqWell</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,416&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,625&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">MAI</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,693&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other investments in non-marketable equity securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">382&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">382&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,798&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,700&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 13<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482477/820-10-65-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394259056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementInputsDisclosureTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables show the Company&#8217;s cash, cash equivalents, and short-term investments by significant investment category (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.800%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.605%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amortized Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash and Cash Equivalents</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Short-term Investments</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 2</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">:</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commercial paper</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,768&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,769&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,769&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Corporate debt</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,187&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,180&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,180&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">U.S. agency securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,989&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,991&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,991&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">U.S. treasury securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,198&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,254&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,254&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Subtotal</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,142&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">73,406&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">73,458&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,264&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> The valuation techniques used to measure the fair values of the Company&#8217;s Level 2 financial instruments uses inputs that are either directly or indirectly observable for the asset through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life.</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.800%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.605%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amortized Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash and Cash Equivalents</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Short-term Investments</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We limit the credit risk associated with our cash equivalents and short-term investments by placing them with banks and institutions we believe are highly credit-worthy and investing in highly-rated investments. As of December&#160;31, 2024, the contractual maturity of all investments held was less than one year. </span></div>During the years ended December&#160;31, 2024 and 2023, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementInputsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of the fair value measurement of assets and liabilities, which includes financial instruments measured at fair value that are classified in shareholders' equity, which may be measured on a recurring or nonrecurring basis.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 820<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/820/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementInputsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483449808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock', window );">Balance Sheet Details</a></td>
<td class="text">Balance Sheet Details <div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work in process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">29&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods </span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,770&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,570&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total inventories</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,799&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,685&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Prepaid expenses and other current assets</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, prepaid expenses and other current assets consists of prepaid expenses of $3.7 million and other current assets of $0.5 million.  As of December&#160;31, 2023, prepaid expenses and other current assets consists of prepaid expenses of $4.6 million and other current assets of $0.6 million.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment, net</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">35,949&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">37,216&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,912&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,459&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,565&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office furniture and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,469&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,441&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,132&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,798&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40,935)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,311)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,197&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,487&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $2.6 million and $3.0 million were retired during the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. As part of this plan, we entered into agreements to sell certain laboratory equipment located in our San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos facility to Vaxcyte (see further discussion at Note 13, &#8220;Commitments and Contingencies&#8221;). These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based on Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeded fair value less costs to sell, which resulted in a write-down o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $1.5&#160;million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December 31, 2023, the Company recorded a n</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">on-cash impairment charge of $4.7 million associated with the San Carlos facility leasehold improvements. For additional information, see Note 13, &#8220;Commitments and Contingencies.&#8221; </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,964&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,594&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,556&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">881&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">924&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">846&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total depreciation expense&#160;&#160;&#160;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,845&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,518&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,402&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(778)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill was previously allocated to each of the Company's reporting units. In July 2023, we announced a restructuring of our business and that we are discontinuing investment in certain development programs, primarily in Novel Biotherapeutics. As a result of this plan, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of $0.8&#160;million to write off all of the associated goodwill. The impairment charge is recorded within the asset impairment and other charges in the consolidated statements of operation in the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Goodwill had a carrying </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">value </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$2.5 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2024 and 2023, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Accrued Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,064&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,330&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued purchases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,908&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,402&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">251&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,003&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other accrued liabilities</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,223&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,735&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/210/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalBalanceSheetDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483257600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-based Compensation</a></td>
<td class="text">Stock-based Compensation<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Equity Incentive Plans</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In August 2024, our Board of Directors (the &#8220;Board&#8221;) approved the 2024 Employment Inducement Award Plan (the &#8220;2024 Inducement Plan&#8221;) which provides for the grant of non-qualified stock options, RSAs, restricted stock units (&#8220;RSUs&#8221;), and performance awards to eligible employees with respect to an aggregate of up to 1,000,000 shares of our common stock.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2023, our Board approved the 2022 Employment Inducement Award Plan (the &#8220;2022 Inducement Plan&#8221;) which provides for the grant of non-qualified stock options, RSAs, RSUs, performance awards, other stock awards and dividend equivalents to eligible employees with respect to an aggregate of up to 2,000,000 shares of our common stock. In June 2023, the 2022 Inducement Plan was terminated upon the approval of an amendment to the Company's 2019 Incentive Award Plan (the &#8220;2019 Plan&#8221;) at the Annual Meeting of Stockholders in June 2023 (the &#8220;2023 Annual Meeting&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Board and stockholders approved the 2019 Plan. The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the &#8220;2010 Plan&#8221;) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder. The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants. The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, RSAs, RSUs, PSUs, PBOs, other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of shares of our common stock that were initially available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii)&#160;any shares subject to awards granted under the 2010 Plan that were outstanding as of April&#160;22, 2019 and thereafter terminate, expire, lapse or are forfeited. In June 2019, 8.1&#160;million shares authorized for issuance under the 2019 Plan were registered under the Securities Act. In April 2023, the Board approved an amendment to the 2019 Plan (the &#8220;2019 Amended Plan&#8221;) which became effective upon stockholders' approval at the 2023 Annual Meeting. The 2019 Amended Plan included the (i) increase in the number of shares available by 8,000,000 shares, such that an aggregate of 15,897,144 shares are reserved for issuance under the 2019 Amended Plan and any shares subject to awards granted under the 2010 Plan, and (ii) increase in the number of shares that may be granted as incentive stock options under the 2019 Amended Plan such that an aggregate of 22,000,000 shares of common stock may be granted as incentive stock options under the 2019 Amended Plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, total shares remaining available for issuance under the 2019 Plan and 2024 Inducement Plan were</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 3,937,070 s</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">hares.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Employee Stock Purchase Plan</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In April 2023, the Board approved an employee stock purchase plan (as may be amended from time to time, the &#8220;ESPP&#8221;) which became effective upon approval at the 2023 Annual Meeting. The ESPP allows eligible employees of the Company to purchase shares of our common stock through payroll deductions. Offering periods are generally over a 24-month period and begin in May and November of each year. The per share purchase price will be the lower of 85% of the closing trading price per share of our common stock on the first trading date of an offering period in which a participant is enrolled or 85% of the closing trading price per share on the purchase date. Participant purchases are limited to a maximum of $25,000 of fair value of our stock per calendar year. The Company is authorized to grant up to 2,000,000 shares of common stock under the ESPP. The first offering period of the ESPP commenced in December 2023. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the year ended December&#160;31, 2024, 263,157 shares of our common stock were purchased under the ESPP. As of December&#160;31, 2024, 1,736,843 shares of common stock were available for future issuance under the ESPP. We recognized $0.3 million of stock-based compensation expenses related to the ESPP for the year ended December&#160;31, 2024. As of December&#160;31, 2024, the total unrecognized stock-based compensation expense, net of expected forfeitures, related to the ESPP was $0.6 million and is expected to be recognized over the remaining offering period. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock Options</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. In January 2024, the Board approved the grants of stock options with a vesting term over three years from the date of grant, of which 33% vest at the end of one year, and 67% vest monthly over the remaining two years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Stock Units (&#8220;RSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also grant employees RSUs, which generally vest over either a three-year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four-year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee&#8217;s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Performance-contingent Restricted Stock Units (&#8220;PSUs&#8221;) and Performance Based Options (&#8220;PBOs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In prior years, the compensation committee of the Board approved grants of PBOs and PSUs to our executives, and solely in respect of non-executive employees, delegated to our CEO the authority to approve grants of PSUs. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement, as determined by the compensation committee of the Board, and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient&#8217;s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">No PSUs and PBOs were granted in 2024 and 2023. In 2022, we awarded PSUs (&#8220;2022 PSUs&#8221;) and PBOs (&#8220;2022 PBOs&#8221;), each of which commence vesting based upon the achievement of various weighted performance go</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">als, including finance and corporate strategy, performance enzymes and biotherapeutics deliverables, research plans, and organizational development. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the first quarter of 2023, the compensation committee of the Board determined that the 2022 PSUs and 2022 PBOs performance goals had been achieved at</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 85.0% and 42.5% of the target level, respectively, and recognized stock-based compensation expenses accordingly. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accordingly, 50% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2023 and 50% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2024, in each case, subject to the recipient&#8217;s continued service on each vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation Expense</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">429&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">354&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,928&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,631&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,907&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,730&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,986&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,087&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,423&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,962&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,167&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,717&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,447</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,807</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">247&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,649&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(112)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,289</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">ESPP</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">343&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,087&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the fourth quarter of 2024, we entered into Separation and Consulting Agreements with Sri Ryali, our former Chief Financial Officer, and two other former executives. Under these</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> agreements, the outstanding unvested options and awards for each of the three former executives will continue to vest through the end of their consultancy period, which concludes on February 28, 2025. This modification resulted in a reduction of stock-based compensation expense of $0.4 million recognized in selling, general and administrative expenses during the year ended December&#160;31, 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 29, 2024, we entered into an Advisory Services Agreement with a former executive of the Company. Pursuant to the advisory agreement, the exercise period for the former executive&#8217;s vested stock options and performance-based options was also extended. This modification resulted in a stock-based compensation expense of $2.0 million recognized in selling, general and administrative expenses during the year ended December&#160;31, 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the retirement of John Nicols, our former President and Chief Executive Officer, in August 2022, and the Transition and Separation Agreement between Mr. Nicols and the Company, certain supplementary modifications were made to Mr. Nicols' vested and unvested stock option and PBOs awards including voluntary forfeiture of certain unvested stock option and PBOs awards and the extension of the post-termination exercise period of certain vested stock option and PBOs awards. During the year ended December 31, 2022, we recorded a one-time, non-cash incremental compensation expense of $1.0 million, net of the required reversal of previously recognized stock-based compensation expenses attributed to unvested shares, in selling, general and administrative expenses related to these stock option award modifications.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Grant Award Activities:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Stock Option Awards</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of stock options using the Black-Scholes-Merton option-pricing model based on the date of grant. The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.9</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.7</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">73.3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">66.2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.9&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes the weighted-average assumptions used to estimate the fair value of 20,000 and 50,000 shares of stock options granted to non-employees for services valued at $44 thousand and $0.1 million during the years ended December&#160;31, 2024 and 2023, respectively:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">74.7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.4&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of non-employee stock options granted respectively in 2024 and 2023 was $2.19 and $1.05, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s stock option activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,935&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(410)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(275)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.01&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,250&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.88&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,046&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(283)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.97&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(839)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,174&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,837&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(399)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.24&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(484)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.75&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,128&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average Remaining Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,128&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,497&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,840&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">402&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,508&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,724&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted average grant date fair value per share of employee stock options granted in 2024, 2023, and 2022 were $2.05, $3.31 and $4.99, respectively. The total intrinsic value of options exercised in 2024, 2023, and 2022 were $0.6&#160;million, $0.7&#160;million and $3.1&#160;million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">re was $11.3 million of unrecognized stock-based compensation, net of expected forfeitures, related to unvested stock options, which we expect to recognize over a weighted average period of 2.3 years. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Awards (&#8220;RSAs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSA activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.53&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.53&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">181&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.45&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">277&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.89&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(133)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.04&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">325&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.48&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">211&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.32&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(302)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">234&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.56&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSAs vested in fiscal years 2024, 2023 and 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> were $1.0 million, $0.4 million and $0.5 million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was $0.4 million of unrecognized stock-based compensation cost related to non-vested RSAs, which we expect to recognize over a weighted average period of 0.5 years.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restricted Stock Units (&#8220;RSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">232&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.83&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(106)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.21&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.15&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,049&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.24&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(204)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(343)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,020&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.66&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,530&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(383)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(157)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.66&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,010&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.16&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of RSUs vested in fiscal years 2024, 2023 and 2022 were </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.1 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, $1.1 million and $1.8 million respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$4.2 million of unrecognized stock-based compensation cost related to non-vested RSUs, which we expect to recognize over a weighted average period of 1.8 years. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance-Contingent Restricted Stock Units (&#8220;PSUs&#8221;)</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes PSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">128&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.24&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">686&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(107)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20.52&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">667&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.41&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.02&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.49&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">292&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(248)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(44)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value, as of the vesting date, of PSUs vested in the years ended December 31, 2024, 2023, and 2022 were $0.9 million, $1.6 million, and $2.1 million, respectively. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was nil of unrecognized stock-based compensation cost related to non-vested PSUs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Performance Based Options (&#8220;PBOs&#8221;) </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We estimated the fair value of PBOs using the Black-Scholes-Merton option-pricing model based on the date of grant. No PBOs were granted to employees for their services during the year ended December&#160;31, 2024. The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:76.531%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:21.269%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54.9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.8&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarizes PBOs activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number<br/>of<br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,840&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(747)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.29&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,826&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.70&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(178)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.73&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,648&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.64&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(73)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.23&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,575&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.43&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Remaining<br/>Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,575&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.62&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.4</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">114&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,575&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.62&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.4</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">114&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total fair value of e</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">xercised PBOs for 2024, 2023 and 2022, was nil. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, there was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">nil</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> of unrecognized stock-based compensation cost related to non-vested PBOs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Employee Stock Purchase Plan (&#8220;ESPP&#8221;) </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.4</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">89.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">89.6&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394221824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Capital Stock<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Capital Stock</a></td>
<td class="text">Capital Stock<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Sales Agreements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In May 2021, we filed a Registration Statement on Form S-3 with the SEC (the &#8220;2021 Registration Statement&#8221;), that automatically became effective upon its filing, under which we were permitted to sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to the 2021 Registration Statement. Pursuant to that post-effective amendment, we registered an aggregate $200.0&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement (&#8220;EDA&#8221;) with Piper Sandler &amp; Co (&#8220;PSC&#8221;), under which PSC, as our exclusive agent, at our discretion and at such times that we determined from time to time, may have sold over a three-year period from the execution of the EDA up to a maximum of $50.0&#160;million of shares of our common stock. Under the terms of the EDA, PSC was permitted to sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We were not required to sell any shares at any time during the term of the EDA. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On April 24, 2024, we terminated the EDA.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">No shares of our common stock were issued and sold pursuant to the EDA during the year ended December 31, 2024. During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA. During the year ended December&#160;31, 2023, we received gross proceeds of $8.7 million or $7.9 million in net proceeds after PSC's commissions and direct offering expenses of $0.7 million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On May 2, 2024, we entered into a Controlled Equity Offering&#8480; Sales Agreement (the &#8220;Cantor Sales Agreement&#8221;) with Cantor Fitzgerald &amp; Co., as sales agent (&#8220;Cantor&#8221;), under which Cantor, at our discretion and at such times that we may determine from time to time, may sell up to a maximum of $75.0&#160;million of shares of our common stock. Under the terms of the Cantor Sales Agreement, Cantor may sell the shares at market prices by any method that is deemed to be an &#8220;at the market offering&#8221; as defined in Rule 415 under the Securities Act. On May 2, 2024, we filed a registration statement on Form S-3 registering the offer and sale of these shares under the Securities Act which became effective on May 14, 2024. We will pay a commission of up to 3.0% of gross sales proceeds of any common stock sold under the Cantor Sales Agreement.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">During the year ended December&#160;31, 2024, 10,440,000 shares of our common stock were issued and sold pursuant to the Cantor Sales Agreement. During the year ended December&#160;31, 2024, we received gross proceeds of $31.3 million or $29.7 million in net proceeds after Cantor&#8217;s commissions and direct offering expenses of $1.6 million. As of December&#160;31, 2024, $43.7 million remained available for sale under the Cantor Sales Agreement.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483247504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>401(k) Plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">401(k) Plan</a></td>
<td class="text">401(k) Plan<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In January 2005, we implemented a 401(k) Plan covering certain employees. Currently, all of our United States based employees over the age of 18 are eligible to participate in the 401(k) Plan. Under the 401(k) Plan, eligible employees may elect to reduce their current compensation up to a certain annual limit and contribute these amounts to the 401(k) Plan. We may make matching or other contributions to the 401(k) Plan on behalf of eligible employees. We recorded employer matching contributions expense o</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">f $1.2 million,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $1.4 million, and $1.6 million in the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for retirement benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480482/715-20-55-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/715/tableOfContent<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480126/715-20-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480266/715-60-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980486780656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text">Income Taxes<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our loss before provision for income taxes were as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65,231)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,169)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,269)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65,242)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,171)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,316)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax provision for the year ended December&#160;31, 2024 and 2023 consists primarily of current year state and foreign income taxes. The tax provision for the year ended </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December 31,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 2022 consists primarily of taxes attributable to foreign operations. The components of the provision for income taxes are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current provision:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">141&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current provision </span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">283&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred benefit:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred benefit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax benefit at federal statutory rate</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(13,701)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15,995)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,996)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,133)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,208)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(494)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(419)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(925)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,793)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign operations taxed at different rates</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,930&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">239&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other nondeductible items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(108)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">438&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(238)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">306&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">152&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,640&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred income taxes reflect the net tax effects of (a)&#160;temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes, and (b)&#160;operating losses and tax credit carryforwards.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82,925&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">72,586&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,660&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,412&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenues</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">176&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,786&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,445&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserves and accruals</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,650&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,774&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">830&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">457&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">244&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">532&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capital losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">424&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D Capitalization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,471&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,821&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain/loss</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease liability</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,445&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,608&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,362&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,542&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax assets:</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">149,875&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">130,777&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(142,994)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(127,835)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,895)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax liabilities:</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,895)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net deferred tax liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(16)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASC 740 requires that the tax benefit of NOLs, temporary differences and credit carryforwards be recorded as an asset to the extent that management assesses that realization is &#8220;more likely than not.&#8221; Realization of the future tax benefits is dependent on our ability to generate sufficient taxable income within the carryforward period. Because of our history of operating losses, management believes that recognition of the deferred tax assets arising from the above-mentioned future tax benefits is currently not more likely than not to be realized and, accordingly, has provided a valuation allowance against our deferred tax assets. Accordingly, the net deferred tax assets in all our jurisdictions have been fully reserved by a valuation allowance. The net valuation allowance increased by</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> $15.2 million d</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">uring the year ended December&#160;31, 2024, increased by $16.7&#160;million during the year ended December&#160;31, 2023, and increased by $9.4&#160;million during the year ended December&#160;31, 2022. At such time as it is determined that it is more likely than not that the deferred tax assets are realizable, the valuation allowance will be reduced.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2024 (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Expiration<br/>Years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">182,918&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026-2037</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">158,554&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,040&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028-2044</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,073&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2024-2044</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,791&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Current U.S. federal and California tax laws include substantial restrictions on the utilization of NOLs and tax credit carryforwards in the event of an ownership change of a corporation. Accordingly, the Company's ability to utilize NOLs and tax credit carryforwards may be limited as a result of such ownership changes</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We performed an analysis in 2024 and determined that there was not a limitation that would result in the expiration of carryforwards before they are utilized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply the provisions of ASC 740 to account for uncertain income tax</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">es. A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,204&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions based on tax positions related to current year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,332&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,164&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,553&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions to tax position of prior years</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reductions to tax position of prior years</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(531)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(243)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,618&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,204&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize interest and penalties as a co</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">mponent of our income tax expense. Total interest and penalties recognized in the consolidated statements of operations were $42 thousand, $42 thousand and $42 thousand in 2024, 2023 and 2022, respectively. Total penalties and interest recognized in the balance sheet was $0.6 million, $0.6 million and $0.5 million as of December&#160;31, 2024, 2023 and 2022, respectively. The total unrecognized tax benefits that, if recognized currently, would impact our company&#8217;s effective tax rate were $0.3 million as of December&#160;31, 2024, 2023 and 2022. We do not expect any material changes to our uncertain tax positions within the next 12 months. We are not subject t</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">o examination by United States federal or state tax authorities for years prior to 2002 and foreign tax authorities for years prior to 2014.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477891/740-270-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/740/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-14<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-21<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482603/740-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393792576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text">Commitments and Contingencies<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Operating Leases</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park operated by Metropolitan Life Insurance Company (&#8220;MetLife&#8221;). Our lease agreement with MetLife (&#8220;RWC Lease&#8221;) includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#8220;200/220 Penobscot Space&#8221;) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#8220;400 Penobscot Space&#8221;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#8220;Penobscot Space&#8221;), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#8220;Chesapeake Space&#8221;).</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We entered into the initial lease with MetLife for our facilities in Redwood City in 2003 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In December 2024, we entered into a Ninth Amendment to the Lease (the &#8220;Ninth Amendment&#8221;) with MetLife with respect to the Penobscot Space and the Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Ninth Amendment, the term of the lease of for both the Penobscot Space and the Chesapeake Space has been extended through August 2032. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the Chesapeake Space for five (5) years. The Ninth Amendment provided a net tenant improvement allowance of $3.0 million.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the lease extension, the Company remeasured the lease liability and adjusted the corresponding right-of-use asset based on the updated lease payments. The impact of this remeasurement, which included a non-cash increase in both the lease liability and right-of-use asset, was recorded as of December 31, 2024.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2024 and the balance as of December&#160;31, 2024, including the changes during the period (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Right-of-use Assets - Operating Lease, net</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at January 1, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,137&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,184)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Addition due to lease modification</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,747&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at December&#160;31, 2024</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,700&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Lease Obligations - Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at January 1, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,727)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest accretion</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">946&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Addition due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,747&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at December&#160;31, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,990&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, we announced our plan to consolidate operations from our previous San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#8220;Assignment Agreement&#8221;) with Vaxcyte, Inc. (&#8220;Vaxcyte&#8221;) to assign to Vaxcyte all of the Company&#8217;s right, title and interest in, under and to the San Carlos facility and the related Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE-San Francisco No. 63, LLC (&#8220;ARE&#8221;) entered into a Consent to Assignment and First Amendment pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#8217;s interest as tenant in the lease. The effective date of the assignment was October 1, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the Assignment Agreement, the Company remeasured the lease obligation for the San Carlos facility to its present value of $3.1 million and wrote off the remaining lease liability of $19.6 million and the corresponding right of use asset balance. Simultaneously, the Company determined that indicators of impairment existed because the lease assignment impacts the utilization of the related right of use assets and leasehold improvements in the San Carlos facility, and therefore performed a recoverability test by estimating future undiscounted net cash flows expected to be generated from the use of these assets. As there were no substantial future cash inflows associated with these assets, the carrying values of these assets were deemed unrecoverable. As a result, during the third quarter of 2023, the Company recognized a non-cash impairment charge of $7.7 million, of which $4.7 million was related to leasehold improvements and $3.0 million for the right of use assets, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of the plan, the Company entered into agreements to sell certain laboratory equipment previously located in the San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos facility to Vaxcyte. These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based on Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeds fair value less costs to sell, which resulted in a write-down of $1.5 million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">of&#160;$1.1 million</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of&#160;December&#160;31, 2024 and 2023, and are recorded as non-current restricted cash on the consolidated balance sheets.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to restore certain areas of the Redwood City facility that we are renting to its original form. We are expensing the asset retirement obligation over the term of the Redwood City lease. We review the estimated obligation each reporting period and make adjustments if our estimates change. We recorded asset retirement obligations of $0.3&#160;million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">as of December&#160;31, 2024 and 2023, which are included in other liabilities on the consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the years ended December&#160;31, 2024 and 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease and other information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,130&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,321&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term lease costs</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,130&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,379&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="12" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> The Company had no variable lease costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amounts included in the measurement of lease obligations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,727&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,897&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Lease</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.6</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:82.379%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.421%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ending December 31,</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,868&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,014&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,053&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,365&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,695&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total minimum lease payments </span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,395&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,405&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,990&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reconciliation of operating lease liabilities as shown within the consolidated balance sheets:</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,163&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,990&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Other Commitments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work. As of December 31, 2024, the future minimum payments that we expect to pay, including potential obligations under services agreements subject to risk of cancellation by us, is minimal.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Credit Facility</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 30, 2017, we entered into a credit facility (the &#8220;Credit Facility&#8221;) with Western Alliance Bank consisting of term loans (&#8220;Term Debt&#8221;) up to $10.0 million, and advances under a revolving line of credit of up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2022. In March 2023, we terminated the Credit Facility with Western Alliance Bank. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Legal Proceedings</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are currently not a party to any material pending litigation or other material legal proceedings that management believes could have a material adverse effect on our financial statements.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Indemnifications</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478522/954-440-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483385504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Debt</a></td>
<td class="text">Debt<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Innovatus Loan Agreement</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 13, 2024 (the &#8220;Closing Date&#8221;), we entered into a </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">five</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">-year term loan and security agreement (the &#8220;Loan Agreement&#8221;) with Innovatus Life Sciences Lending Fund I, LP (&#8220;Innovatus&#8221;), an affiliate of Innovatus Capital Partners, LLC, for an aggregate principal amount of up to </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$40.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and with a maturity date of February 13, 2029 (the &#8220;Innovatus Loan&#8221;). The Innovatus Loan consists of two tranches, of which the first tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$30.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> was funded on February 13, 2024. We will be eligible to draw down the second tranche of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$10.0 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> upon achievement of certain milestones including certain pre-specified revenue thresholds and subject to a payment of a facility fee equal to 1.00% of the amount of such term loan. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The floating per annum interest rate of the Innovatus Loan is equal to </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">the sum of (a) the greater of (i) prime rate published in the Money Rates section of the Wall Street Journal and (ii) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><span style="-sec-ix-hidden:f-1307">7.50</span>%</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, plus (b) </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><span style="-sec-ix-hidden:f-1310">3.25</span>%; provided that, at the election of the Company, up to 2.0% of such rate shall be payable in-kind until the third anniversary of the closing date. The Company is required to make monthly interest-only payments through February 1, 2027 (with the ability to extend the interest-only period through February 1, 2028 upon the achievement of certain pre-specified financial milestones), after which the Company is required to make monthly amortizing payments, with the remaining balance of the principal plus accrued and unpaid interest due at maturity. 2.0% of the interest is payable in-kind for the first three years of the term by increasing the principal balance. Prepayments of the loan, in whole or in part, will be subject to an early prepayment fee which ranges between 3.0% and 1.0% and declines each year until the third anniversary date of the Closing Date, after which no prepayment fee is required. The Company is also required to pay an exit fee upon any payment or prepayment equal to 3.0% of the aggregate principal amount of the tranches funded under the Innovatus Loan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Innovatus Loan contains customary representations and warranties and covenants, subject to customary carve outs, and includes financial covenants related to liquidity and net product revenue, with the latter beginning with the period ended December 31, 2024. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Innovatus Loan is secured by perfected first priority liens on the Company's assets, and the Loan Agreement includes a negative pledge by the Company which prohibits the Company from permitting liens to be placed upon the Company's intellectual property in favor of any party other than Innovatus.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the issuance of the Innovatus Loan, we recorded a debt discount of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$1.3 million</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and capitalized debt issuance costs of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.6 million</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The discount and issuance costs will be amortized over the life of the Innovatus Loan. Interest expense for the Innovatus Loan for the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024 </span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$3.5 million,</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and is inclusive of non-cash amortization of the debt discount, debt issuance costs, payable in-kind interest, and accretion of final payment. The carrying amount of the Innovatus Loan approximates fair value given its recent issuance and the interest rate is based on the current prime rate. The effective interest rate for the Innovatus Loan was </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">13.1%</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> as of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2024</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, in connection with entering into the Innovatus Loan, we entered into a Warrant Agreement with Innovatus on February 13, 2024 and issued to Innovatus a warrant to purchase an aggregate of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">424,028</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> shares of the Company&#8217;s common stock at an exercise price of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$2.83</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> per share. The warrants may be exercised on a cashless basis, and are immediately exercisable through the 10th anniversary of the issuance date. At the time of issuance, the Company determined the estimated fair value of the warrants of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.9 million</span><span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> using the Black-Scholes model. As the warrants represent a freestanding equity instrument, the Company recorded the fair value of the warrants in additional paid-in capital during the first quarter of 2024</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company accounts for the amortization of the debt discount and issuance costs utilizing the effective interest method. Long-term debt consisted of the following at December&#160;31, 2024 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.747%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.469%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Face value of debt</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: payment in-kind interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">483&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: amortized exit fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt discount</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,151)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(552)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total long-term debt</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,905&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-bottom:9pt;margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The future principal payments under the Innovatus Loan are as follows (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.747%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.469%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ending December 31,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,264&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,917&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,653&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total principal payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,834&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: amortized exit fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: uncapitalized payment in-kind interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,351)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,151)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance costs</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(552)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total long-term debt</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,905&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483403984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment, Geographical and Other Revenue Information</a></td>
<td class="text">Segment, Geographical and Other Revenue Information<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker (&#8220;CODM&#8221;), assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment since the fourth quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 1, 2023, the Company's operations are managed and reported to the CODM on a consolidated basis. The CODM uses consolidated income (loss) from operations and net income (loss) to assess financial performance and make resource allocation decisions. These financial measures are used by the CODM to balance short-term financial results with long-term strategic goals, guiding the allocation of budget between product costs, research and development, and general, selling and administrative expenses.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the restructuring of our business, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$0.8 million</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> to write off all of the associated goodwill. The impairment charge is recorded within asset impairment and other charges in the consolidated statements of operation for the year ended </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">December&#160;31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Significant Customers</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues<br/>For the Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:9pt;padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer F</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer G</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer H</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer I</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Geographical Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)(3)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,359&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(4)(5)(6)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,708&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> United States revenue was $21.3 million, $13.7 million, and $17.0 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Ireland revenue was $1.8 million, $0.5 million, and $37.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Switzerland revenue was $3.4 million, $11.1 million, and $9.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> China revenue was $9.8 million, $20.3 million, and $48.6 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(5)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> India revenue was $7.3 million, $5.7 million, and $8.8 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(6)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Singapore revenue was $6.2 million, $2.4 million, and $3.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,098&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,624&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 34<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483369472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock', window );">Restructuring Charges</a></td>
<td class="text">Restructuring Charges<div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, in alignment with our enhanced strategic focus, we announced a restructuring of our business, including a plan for a workforce reduction of approximately 25%. During the year ended December 31, 2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, w</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e recorded a restructuring charge related to this workforce reduction of $3.1 million related to severance and related benefit costs. The plan was substantially completed in September 2023 and severance costs were paid through the fourth quarter of 2023. We do not expect to record any significant future charges related to the restructuring plan.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> In November 2022, we announced a plan for a workforce reduction of approximately 18% to realign and optimize our workforce requirements in alignment with our refined corporate strategy. The plan was substantially completed in December 2022 and severance costs were paid through the third quarter of 2023. During the years ended December 31, 2023</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> and 2022</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, we recorded restructuring charges of $0.2 million and $3.2 million, respectively, related to severance, bonus and other termination benefits in connection with the workforce reduction announced in November 2022. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We do not expect to record any future charges related to the restructuring plans initiated in 2023 and 2022.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/420/tableOfContent<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980492777088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Loss</a></td>
<td class="num">$ (65,276)<span></span>
</td>
<td class="num">$ (76,240)<span></span>
</td>
<td class="num">$ (33,592)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398661808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483381888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Policies and Procedures<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_InsiderTradingPoliciesProcLineItems', window );"><strong>Insider Trading Policies and Procedures [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_InsiderTrdPoliciesProcAdoptedFlag', window );">Insider Trading Policies and Procedures Adopted</a></td>
<td class="text">true<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_InsiderTradingPoliciesProcLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16<br> -Subsection J<br> -Paragraph a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_InsiderTradingPoliciesProcLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_InsiderTrdPoliciesProcAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16<br> -Subsection J<br> -Paragraph a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_InsiderTrdPoliciesProcAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397700640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cybersecurity Risk Management and Strategy Disclosure<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems', window );"><strong>Cybersecurity Risk Management, Strategy, and Governance [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock', window );">Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk Management and Strategy</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the normal course of business, we may collect and store personal information and other sensitive information, including proprietary and confidential business information, trade secrets, intellectual property, sensitive third-party information and employee information.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We assess and identify cybersecurity risk to such information by maintaining cybersecurity policies that require continuous monitoring and detection programs and network security precautions. Our program incorporates industry-standard frameworks, policies and practices designed to protect the privacy and security of our sensitive information. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We manage cybersecurity risks by maintaining various protections designed to safeguard against cyberattacks, including firewalls and virus detection software, and periodic end user training on common cybersecurity threats (e.g. phishing exercises and interactive trainings). We have established our disaster recovery plan and we protect against business interruption by backing up our major systems. In addition, we periodically scan our environment for any vulnerabilities, perform penetration testing and engage third parties to assess effectiveness of our data security practices. A third party security consultant conducts regular network security reviews, scans and audits, and we may consult with other external experts as warranted by a particular cybersecurity incident or threat. In addition, we maintain insurance that includes cybersecurity coverage.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Areas of cybersecurity risk are assessed bi-annually, and updates are reported by our Chief Financial Officer to the Board&#8217;s Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually. In this way, our program to manage cybersecurity risk integrates with our overall risk management processes. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With respect to third parties who provide services affecting critical business management systems, we collect and maintain SOC2 or SOC1 type II reports (attestation of controls at a service organization over a minimum six-month period). For other third-party service providers, cybersecurity risk is addressed as appropriate.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of the date of this report, we are not aware of any risks from cybersecurity threats that have materially affected or are reasonably likely to materially affect us, including our business strategy, results of operations and financial condition. Despite the implementation of our cybersecurity program, our security measures cannot guarantee that a significant cyberattack will not occur. A successful attack on our information technology systems could have significant consequences to the business. While we devote resources to our security measures to protect our systems and information, these measures cannot provide absolute security. See &#8220;Risk Factors &#8211; General Risk Factors&#8221; for additional information about the risks to our business associated with a breach or compromise to our information technology systems.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesIntegratedFlag', window );">Cybersecurity Risk Management Processes Integrated [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock', window );">Cybersecurity Risk Management Processes Integrated [Text Block]</a></td>
<td class="text"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the normal course of business, we may collect and store personal information and other sensitive information, including proprietary and confidential business information, trade secrets, intellectual property, sensitive third-party information and employee information.</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span>We assess and identify cybersecurity risk to such information by maintaining cybersecurity policies that require continuous monitoring and detection programs and network security precautions. Our program incorporates industry-standard frameworks, policies and practices designed to protect the privacy and security of our sensitive information.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag', window );">Cybersecurity Risk Management Third Party Engaged [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag', window );">Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag', window );">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock', window );">Cybersecurity Risk Board of Directors Oversight [Text Block]</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Governance</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors has visibility into cybersecurity risks through its Audit Committee and through the process described below. The Audit Committee has oversight of the Company&#8217;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#8217;s computerized information system controls and security.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Areas of cybersecurity risk are assessed bi-annually, and updates are reported by the Chief Financial Officer to the Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Senior management has appointed a Cybersecurity Council that is responsible for identifying, escalating, and facilitating the assessment and determination of the materiality of cybersecurity incidents and threats. The Cybersecurity Council is made up of representatives of IT, Legal and Finance, as well as ad hoc additional members depending on the circumstances of the incident or threat. </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The members of the Cybersecurity Council do not have specific expertise in cybersecurity risk other than the Vice President of Information Technology (&#8220;VP IT&#8221;) who has more than 20 years of experience, and engages with trusted third-party experts for support and guidance when additional expertise is required. In December 2024, the VP IT exited the company, and IT expert advice to the Cybersecurity Council is currently provided by an external cybersecurity specialist. This specialist has extensive experience managing cybersecurity functions in his prior external roles, where he was responsible for overseeing cybersecurity strategy and operations, including incident response, threat intelligence, security awareness training programs, risk assessments and remediation, and regulatory and compliance matters.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An actual or suspected cybersecurity incident that jeopardizes the confidentiality, integrity, or availability of Codexis' information systems or any information residing therein (or threat that presents significant risk to our information systems as identified by IT) is reported to the Cybersecurity Council by our IT Department. The focus of the Cybersecurity Council is on the investigation and facilitation of senior management&#8217;s assessment and determination of materiality of an incident or threat, and such investigation is separate but contemporaneous with the investigation(s) done under other applicable programs, policies, and plans regarding cybersecurity. The Cybersecurity Council will liaise directly with other investigation(s) and share information and assessments. Along with assistance from the Cybersecurity Council as necessary, senior management reports its materiality determination and analysis, including necessary facts to support its determination, to the Audit Committee of the Board of Directors. Pursuant to its charter, the Audit Committee may, along with senior management, report such determination to the Board of Directors.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text">The Audit Committee has oversight of the Company&#8217;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#8217;s computerized information system controls and security.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text">The Audit Committee has oversight of the Company&#8217;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#8217;s computerized information system controls and security.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskRoleOfManagementTextBlock', window );">Cybersecurity Risk Role of Management [Text Block]</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors has visibility into cybersecurity risks through its Audit Committee and through the process described below. The Audit Committee has oversight of the Company&#8217;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#8217;s computerized information system controls and security.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Management Positions or Committees Responsible [Text Block]</a></td>
<td class="text">Senior management has appointed a Cybersecurity Council that is responsible for identifying, escalating, and facilitating the assessment and determination of the materiality of cybersecurity incidents and threats. The Cybersecurity Council is made up of representatives of IT, Legal and Finance, as well as ad hoc additional members depending on the circumstances of the incident or threat.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock', window );">Cybersecurity Risk Management Expertise of Management Responsible [Text Block]</a></td>
<td class="text"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The members of the Cybersecurity Council do not have specific expertise in cybersecurity risk other than the Vice President of Information Technology (&#8220;VP IT&#8221;) who has more than 20 years of experience, and engages with trusted third-party experts for support and guidance when additional expertise is required. In December 2024, the VP IT exited the company, and IT expert advice to the Cybersecurity Council is currently provided by an external cybersecurity specialist. This specialist has extensive experience managing cybersecurity functions in his prior external roles, where he was responsible for overseeing cybersecurity strategy and operations, including incident response, threat intelligence, security awareness training programs, risk assessments and remediation, and regulatory and compliance matters.</span><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An actual or suspected cybersecurity incident that jeopardizes the confidentiality, integrity, or availability of Codexis' information systems or any information residing therein (or threat that presents significant risk to our information systems as identified by IT) is reported to the Cybersecurity Council by our IT Department. The focus of the Cybersecurity Council is on the investigation and facilitation of senior management&#8217;s assessment and determination of materiality of an incident or threat, and such investigation is separate but contemporaneous with the investigation(s) done under other applicable programs, policies, and plans regarding cybersecurity. The Cybersecurity Council will liaise directly with other investigation(s) and share information and assessments. Along with assistance from the Cybersecurity Council as necessary, senior management reports its materiality determination and analysis, including necessary facts to support its determination, to the Audit Committee of the Board of Directors. Pursuant to its charter, the Audit Committee may, along with senior management, report such determination to the Board of Directors.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesIntegratedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesIntegratedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementThirdPartyEngagedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskRoleOfManagementTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskRoleOfManagementTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980399572832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation and Principles of Consolidation</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Basis of Presentation and Principles of Consolidation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;GAAP&#8221;) and the applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency Translation</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Foreign Currency Translation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenues are derived primarily from product revenue and collaborative research and development agreements. Some of our contracts with customers contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#8220;SSP&#8221;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following is a description of principal activities from which we generate revenue:</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer which generally aligns with shipping terms, or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#8217;s use. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research and Development Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our CodeEvolver technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Practical Expedients, Elections, and Exemptions</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to treat shipping and handling activities as fulfillment costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have elected to record revenue net of sales and other similar taxes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Assets </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Liabilities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Contract Costs</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Product Revenue</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $1.0&#160;million, and $3.0&#160;million for the years ended December&#160;31, 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cost of Research and Development Services</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Research and Development Expenses</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Research and Development Expenses</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Advertising</span></div>Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Stock-Based Compensation</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ESPP</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Restricted Stock Units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSUs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">), Restricted Stock Awards (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RSAs&#8221;) and performance-contingent restricted stock units (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PSUs&#8221;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">PBOs</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy', window );">Cash and Cash Equivalents</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Cash and Cash Equivalents</span></div>We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy', window );">Restricted Cash</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Restricted Cash</span></div>We are currently in the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations.Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million as of&#160;December&#160;31, 2024 and 2023. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentPolicyTextBlock', window );">Short-term Investments and Investment in Non-Marketable Equity Securities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Short-term Investments</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We classify all marketable debt securities that have effective maturities of three months or less from the date of purchase as cash equivalents and those with effective maturities of greater than three months as short-term investment securities in the consolidated balance sheets. We determine the appropriate classification of our short-term investments at the time of purchase and reevaluate such designation at each balance sheet date. We have classified and accounted for our short-term investments as available-for-sale. After consideration of our risk versus reward objectives, as well as our liquidity requirements, we may sell these debt securities prior to their effective maturities.  </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We carry these short-term investments at fair value, and report the unrealized gains and losses, net of taxes, as a component of stockholders&#8217; equity, except for the changes in allowance for expected credit losses, which are included in &#8220;Interest and other expense, net&#8221; in the consolidated statements of operations. We determine any realized gains or losses on the sale of short-term investments on a specific identification method, and we record such gains and losses as a component of interest income.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Short-term investments are reviewed periodically for allowances for credit losses and impairment. When evaluating the investments, the Company reviews factors such as the extent to which the fair value of the security is less than the amortized cost basis, adverse conditions specifically related to the security, the financial condition of the issuer, the Company&#8217;s intent to sell, and whether it would be more likely than not that the Company would be required to sell the investments before the recovery of the amortized cost basis.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Investment in Non-Marketable Equity Securities</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in interest and other expense, net.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#8220;other-than-temporary&#8221; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Audited and unaudited financial statements;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected technological developments of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Projected ability of the company to service its debt obligations;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">If a deemed liquidation event were to occur;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current fundraising transactions;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Current ability of the company to raise additional financing if needed;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Changes in the economic environment which may have a material impact on the operating results of the company;</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Contractual rights, obligations or restrictions associated with the investment; and</span></div><div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Other factors deemed relevant by our management to assess valuation.</span></div>The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value Measurements</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fair Value Measurements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#8217;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.</span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life. </span></div><div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#8217;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentrations of Credit Risk</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Credit Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2024, we h</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ad four customers that accounted for 56% of our ac</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">counts receivable balance. As of December&#160;31, 2023, four customers accounted for 58% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock', window );">Financial Assets and Allowances</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Financial Assets and Allowances</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">W</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. </span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#8220;current expected credit loss model&#8221; or &#8220;CECL&#8221;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#8220;ACL&#8221;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy', window );">Unbilled Receivable</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unbilled Receivable</span></div>The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Inventories</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock', window );">Concentrations of Supply Risk</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Concentrations of Supply Risk</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">-</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Property and Equipment</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock', window );">Impairment of Long-Lived Assets</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Impairment of Long-Lived Assets</span></div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the years ended</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December&#160;31, 2024 and </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2023</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s</span>ee Note 8, &#8220;Balance Sheet Details&#8221; and Note 13, &#8220;Commitments and Contingencies.&#8221;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span></div>Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment, considering, among other factors, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Lease Accounting</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Lease Accounting</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. In the event that it is determined that these deferred tax assets are not more likely than not to be realized, a valuation allowance is recorded against these deferred tax assets. As of December&#160;31, 2024 and 2023, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) 2009-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#8217;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#8220;NOL</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8221;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Accounting Pronouncements</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Accounting Pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently adopted accounting pronouncements</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) No. 2023-07,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. The Company adopted ASU No. 2023-07 during the year ended December&#160;31, 2024. For additional information, see Note 15, &#8220;Segment, Geographical and Other Revenue Information.&#8221;</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Aside from those recently issued accounting pronouncements adopted and described above and not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2024 that are of significance or potential significance to us.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recently issued accounting pronouncements not yet adopted</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In November 2024, the FASB issued ASU No. 2024-03, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Income Statement-Reporting Comprehensive Income-Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendment in the ASU will require additional disclosures and disaggregation of certain costs and expenses presented on the face of the income statement. This guidance is effective for the Company for fiscal years beginning after December 15, 2026. Early adoption is permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2024, the FASB issued ASU No. 2024-02, </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Codification Improvements - Amendments to Remove References to the Concepts Statements</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU amends the FASB Accounting Standard Codification (the &#8220;ASC&#8221;) to remove references to various concepts statements and impacts a variety of topics in the ASC. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. If an entity adopts the amendments in an interim period, it must adopt them as of the beginning of the fiscal year that includes that interim period. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2023, FASB issued ASU No. 2023-09,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU require public companies, on an annual basis, to provide disclosures of specific categories in the rate reconciliation, as well as disclosure of income taxes paid disaggregated by jurisdiction. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2023, FASB issued ASU No. 2023-06,</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> Disclosure Improvements: Codification Amendments in Response to the SEC&#8217;s Disclosure Update and Simplification Initiative</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the ASC. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#8217;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingPolicyPolicyTextBlock', window );">Segment Reporting</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Segment Information</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker (&#8220;CODM&#8221;), assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment since the fourth quarter of 2023.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective October 1, 2023, the Company's operations are managed and reported to the CODM on a consolidated basis. The CODM uses consolidated income (loss) from operations and net income (loss) to assess financial performance and make resource allocation decisions. These financial measures are used by the CODM to balance short-term financial results with long-term strategic goals, guiding the allocation of budget between product costs, research and development, and general, selling and administrative expenses.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Concentration Risk, Supply Risk [Policy Text Block]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(1)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents with respect to unrestricted balances.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478898/942-825-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditLossFinancialInstrumentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security. Includes, but is not limited to, methodology used to estimate allowance for credit loss, how writeoff of uncollectible amount is recognized, and determination of past due status and nonaccrual status.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.M.2.Q4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483530/326-20-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-14<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 5A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479391/326-20-30-5A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-3C<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479366/326-20-35-8A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-3D<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479175/326-30-30-1B<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-3C<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-3A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-3D<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 13A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479148/326-30-35-13A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 4A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479391/326-20-30-4A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 7A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479148/326-30-35-7A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-21<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-17<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditLossFinancialInstrumentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/830/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.CC)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480091/360-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482338/360-10-05-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478411/912-330-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482989/270-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for investment in financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 12<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 19<br> -Subparagraph (2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-19<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483044/730-10-05-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-18<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-20<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for segment reporting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 36<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-36<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for treatment of receivables that are billable but have not been billed as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/310/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980486777600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of Estimated Ranges of Useful Lives of Property and Equipment</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">35,949&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">37,216&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,912&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,459&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,565&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office furniture and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,469&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,441&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,132&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,798&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40,935)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,311)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,197&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,487&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $2.6 million and $3.0 million were retired during the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,964&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,594&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,556&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">881&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">924&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">846&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total depreciation expense&#160;&#160;&#160;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,845&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,518&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,402&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394242672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Schedule of Disaggregation of Revenue</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Disaggregated information is as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Major products and service:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36,786&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42,906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">116,676&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,559&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,237&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,914&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Primary geographical markets:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,359&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,708&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Schedule of Contract with Customer</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents balances of contract assets, unbilled receivables, and contract liabilities (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">815&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled receivables</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,208&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,904&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Contract liabilities: deferred revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">450&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,761&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We recognized the following revenues (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Revenue recognized in the period for:</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amounts included in contract liabilities at the beginning of the period:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,121&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,937&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the period:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">314&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Performance obligations satisfied from new activities in the period - contract revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,910&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48,041&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock', window );">Schedule of Performance Obligation, Expected Timing of Satisfaction</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:32.964%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.624%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2025</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2026</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2027</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2028 and Thereafter</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">350&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">450&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of expected timing for satisfying remaining performance obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483256032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Loss per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock', window );">Schedule of Shares Not Included in Computation of Diluted Net Loss Per Share</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shares issuable under the Equity Incentive Plans and ESPP</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,613&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,028&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,442&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Warrants</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">424&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total potentially dilutive securities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,037&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,028&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,442&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Included 665,160 and 568,224 of anti-dilutive potential common shares from ESPP for the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> Pertains to the warrants issued in connection with the Innovatus Loan. For additional information, see Note 14, &#8220;Debt.&#8221;</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395243040">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract', window );"><strong>Investments, Debt and Equity Securities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock', window );">Schedule of Carrying Value of Non-marketable Equity Securities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the carrying value of our non-marketable equity securities (in thousands): </span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">seqWell</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,416&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,625&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">MAI</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,693&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other investments in non-marketable equity securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">382&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">382&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total non-marketable equity securities</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,798&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,700&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393853344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock', window );">Schedule Of Cash, Cash Equivalents, And Short-Term Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables show the Company&#8217;s cash, cash equivalents, and short-term investments by significant investment category (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.800%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.605%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amortized Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash and Cash Equivalents</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Short-term Investments</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,284&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 2</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">:</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commercial paper</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,768&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,769&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,769&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Corporate debt</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,187&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,180&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,180&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">U.S. agency securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,989&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,991&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,991&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">U.S. treasury securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,198&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,254&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,254&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Subtotal</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,142&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">73,406&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">67&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">73,458&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,264&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,194&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> The valuation techniques used to measure the fair values of the Company&#8217;s Level 2 financial instruments uses inputs that are either directly or indirectly observable for the asset through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated life.</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.800%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.595%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.605%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amortized Cost</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Gains</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Unrealized Losses</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Cash and Cash Equivalents</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Short-term Investments</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Level 1:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Money market funds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,374&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,116&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393767248">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Schedule of Inventory Components</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Raw materials </span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Work in process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">29&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finished goods </span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,770&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,570&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total inventories</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,799&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,685&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Schedule of Property and Equipment, Net</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.820%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Asset classification</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Estimated useful life</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laboratory equipment</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer equipment and software</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Office equipment and furniture</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5 years</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Lesser of useful life or lease term</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property and equipment, net consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Laboratory equipment</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">35,949&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">37,216&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,912&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Computer equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,459&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,565&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Office furniture and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,124&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,469&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Construction in progress</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,441&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,636&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">55,132&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,798&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40,935)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(39,311)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and equipment, net</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,197&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,487&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Fully depreciated property and equipment with a cost of $2.6 million and $3.0 million were retired during the years ended December&#160;31, 2024 and 2023, respectively.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Construction in progress includes equipment received but not yet placed into service pending installation.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,964&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,594&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,556&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">881&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">924&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">846&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total depreciation expense&#160;&#160;&#160;&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,845&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,518&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,402&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Schedule of Goodwill</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Goodwill</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at beginning of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Impairment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(778)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill at end of period</span></div></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Liabilities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other accrued liabilities consisted of the following (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued professional and outside service fees</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,064&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,330&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued purchases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,908&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,402&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">251&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,003&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total other accrued liabilities</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,223&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,735&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394637280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of Stock-based Compensation Expense</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Costs of product revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">429&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">354&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,928&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,631&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,907&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,730&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,986&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,172&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,087&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock options</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,423&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,962&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,167&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">RSUs and RSAs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,717&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,447</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,807</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PSUs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">247&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,649&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,268&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">PBOs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(112)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,289</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">ESPP</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">343&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,087&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,971&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,531&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of Assumptions Used to Estimate the Fair Value of Option Grants</a></td>
<td class="text">The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.9</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.7</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">73.3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">66.2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">62.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.9&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following summarizes the weighted-average assumptions used to estimate the fair value of 20,000 and 50,000 shares of stock options granted to non-employees for services valued at $44 thousand and $0.1 million during the years ended December&#160;31, 2024 and 2023, respectively:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.8</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">74.7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70.1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.4&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div>The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:76.531%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:21.269%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.6</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54.9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.8&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of Share-based Compensation, Stock Options, Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarize</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">s stock option activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,935&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.90&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(410)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(275)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.01&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,250&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.88&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,046&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(283)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.97&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(839)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,174&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,837&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(399)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.24&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(484)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.75&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,128&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average Remaining Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,128&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.3</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,497&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,840&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.5</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">402&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,508&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6.2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,724&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock', window );">Schedule of Share-based Compensation, RSA Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSA activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.53&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.53&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">181&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.45&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">277&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2.89&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(133)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.04&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">325&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.48&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">211&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.32&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(302)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.31&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">234&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.56&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of Share-based Compensation, RSU Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes RSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">232&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.83&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17.46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(106)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.21&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">518&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.15&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,049&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.24&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(204)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18.42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(343)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,020&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.66&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,530&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.08&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(383)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.96&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(157)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.66&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,010&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.16&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock', window );">Schedule of Share-based Compensation, Performance Shares Award Outstanding Activity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes PSU activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">128&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21.24&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">686&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(107)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20.52&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(40)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19.93&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">667&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.41&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11.02&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12.49&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">25.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">292&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(248)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(44)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.69&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-vested balance at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following tables summarizes PBOs activities:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number<br/>of<br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Grant Date Fair Value<br/>Per Share</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,840&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.11&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.89&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(747)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8.29&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,826&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.70&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(178)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9.73&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,648&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.64&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Forfeited/Expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(73)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.23&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Outstanding at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,575&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.43&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><br/></span></div><div style="margin-top:9pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:42.677%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.385%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.520%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Number <br/>of <br/>Shares</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Exercise Price<br/>Per Share</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Weighted Average<br/>Remaining<br/>Contractual Term</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Aggregate Intrinsic<br/>Value</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Years)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(In Thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Exercisable at December 31, 2024</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,575&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.62&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.4</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">114&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Vested and expected to vest at December 31, 2024</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,575&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10.62&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3.4</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">114&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock', window );">Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected life (years)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1.2</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.4</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">89.4&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">89.6&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Risk-free interest rate</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4.6&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5.3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.0&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Subparagraph (c)<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980492659744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Schedule of Loss Before Income Taxes, Domestic and Foreign</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our loss before provision for income taxes were as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65,231)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,169)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,269)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss before provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(65,242)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(76,171)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(33,316)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of Components of Provision for Income Taxes</a></td>
<td class="text">The components of the provision for income taxes are as follows (in thousands):&#160;<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current provision:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">141&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">42&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current provision </span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">36&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">283&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred benefit:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred benefit</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of Reconciliation of Provision for Income Taxes Calculated at the Statutory Rate to Provision for Income Taxes</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax benefit at federal statutory rate</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(13,701)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15,995)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,996)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">State taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,133)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,208)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(494)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research and development credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(419)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(925)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,793)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign operations taxed at different rates</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">78&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,930&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">239&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other nondeductible items</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(108)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">438&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(238)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">306&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">152&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">80&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,159&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,640&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Provision for income taxes</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">34&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">69&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">276&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of Significant Components of Deferred Tax Assets and Liabilities</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82,925&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">72,586&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Credits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,660&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,412&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenues</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">48&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">176&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,786&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,445&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserves and accruals</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,650&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,774&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property and Equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">830&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">457&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">244&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">532&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Capital losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">452&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">424&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">R&amp;D Capitalization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,471&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,821&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unrealized gain/loss</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease liability</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,445&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,608&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,362&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,542&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax assets:</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">149,875&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">130,777&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(142,994)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(127,835)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,895)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total deferred tax liabilities:</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6,895)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,958)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net deferred tax liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(16)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:6pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock', window );">Schedule of Federal, State and Foreign NOL Carryforwards and Federal Research and Development Tax Credits</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2024 (in thousands):&#160;<br/></span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Expiration<br/>Years</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">182,918&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026-2037</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">158,554&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net operating losses, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,040&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028-2044</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,073&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2024-2044</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Tax credits, state</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,791&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Do not expire</span></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of Reconciliation of the Beginning and Ending Amount of Unrecognized Tax Benefits</a></td>
<td class="text">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;<table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at beginning of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,204&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,261&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions based on tax positions related to current year</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,332&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,164&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,553&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additions to tax position of prior years</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reductions to tax position of prior years</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(531)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(243)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance at end of year</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,618&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,204&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,571&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of income before income tax between domestic and foreign jurisdictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483331008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock', window );">Schedule of Right-of-use Assets and Lease Obligations</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2024 and the balance as of December&#160;31, 2024, including the changes during the period (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Right-of-use Assets - Operating Lease, net</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at January 1, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,137&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of right-of-use assets</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,184)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Addition due to lease modification</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,747&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Right-of-use assets - Operating leases, net, at December&#160;31, 2024</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,700&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:77.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.369%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Lease Obligations - Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at January 1, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,024&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(4,727)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Interest accretion</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">946&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Addition due to lease modification</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,747&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations - Operating leases, net, at December&#160;31, 2024</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,990&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Schedule of Lease Cost</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Finance lease costs</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease cost</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,130&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,321&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Short-term lease costs</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total lease cost</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)</span></div></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,130&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,310&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,379&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr style="height:3pt"><td colspan="12" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Short-term lease costs on leases with terms of over one month and less than one year.</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> The Company had no variable lease costs.</span></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Amounts included in the measurement of lease obligations (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:48.169%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.420%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.423%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Cash paid:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating cash flows from operating leases</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,727&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,897&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Lease</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Other information:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average remaining lease term (in years)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.6</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average discount rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7.0&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of Operating Lease Maturity</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):</span></div><div style="margin-top:9pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:82.379%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.421%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years ending December 31,</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Operating Leases</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2025</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,868&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2026</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,014&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2027</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,053&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2028</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,400&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2029</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">5,365&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">15,695&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total minimum lease payments </span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,395&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Less: imputed interest</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,405&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Lease obligations</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,990&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr><tr><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reconciliation of operating lease liabilities as shown within the consolidated balance sheets:</span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current portion of lease obligations - Operating leases</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Long-term lease obligations - Operating leases</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,163&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating lease liabilities</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,990&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Schedule Of Right-of-use Assets And Lease Obligations</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393821856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDebtInstrumentsTextBlock', window );">Schedule of Long-Term Debt Instruments</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company accounts for the amortization of the debt discount and issuance costs utilizing the effective interest method. Long-term debt consisted of the following at December&#160;31, 2024 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.747%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.469%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Face value of debt</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: payment in-kind interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">483&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: amortized exit fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt discount</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,151)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(552)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total long-term debt</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,905&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock', window );">Schedule of Maturities of Long-Term Debt</a></td>
<td class="text"><div style="margin-bottom:9pt;margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The future principal payments under the Innovatus Loan are as follows (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.747%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.469%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Years Ending December 31,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,264&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,917&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,653&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total principal payments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,834&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Add: amortized exit fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">125&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: uncapitalized payment in-kind interest</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,351)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance fee</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,151)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: unamortized debt issuance costs</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(552)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total long-term debt</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,905&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDebtInstrumentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of long-debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the entity, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69E<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 470<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477734/942-470-50-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-8<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-6<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDebtInstrumentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of maturity and sinking fund requirement for long-term debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395696016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock', window );">Schedule of Customers That Contributed 10% or More of Total Accounts Receivable</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of our total revenues were as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Percentage of Total Revenues<br/>For the Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer A</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer C</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer E</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-top:9pt;padding-left:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></div></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">As of December 31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer B</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer D</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer F</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer G</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer H</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Customer I</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">*</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">* Percentage was less than 10%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock', window );">Schedule of Revenues by Geographical Area</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Geographic revenues are identified by the location of the customer and consist of the following (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:59.572%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.622%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December 31, </span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenues</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(1)</span></div></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">13,733&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">17,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">EMEA</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(2)(3)</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">10,359&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,907&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56,540&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">APAC</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline">(4)(5)(6)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,708&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">33,503&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">65,050&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenues</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">70,143&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">138,590&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"></td></tr></table></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(1)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> United States revenue was $21.3 million, $13.7 million, and $17.0 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(2)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Ireland revenue was $1.8 million, $0.5 million, and $37.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(3)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Switzerland revenue was $3.4 million, $11.1 million, and $9.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(4)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> China revenue was $9.8 million, $20.3 million, and $48.6 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(5)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> India revenue was $7.3 million, $5.7 million, and $8.8 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><div style="padding-left:10.8pt;text-indent:-10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline">(6)</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"> Singapore revenue was $6.2 million, $2.4 million, and $3.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock', window );">Schedule of Long-lived Assets by Geographical Area</a></td>
<td class="text"><div style="margin-top:9pt;text-indent:18pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Identifiable long-lived assets by location was as follows (in thousands):</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.619%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.621%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">United States</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">43,098&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">28,624&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:3pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of all significant reconciling items in the reconciliation of total revenues from reportable segments to the entity's consolidated revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-16<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393750176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of Business (Details) - segment<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1">15 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398102896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShippingAndDistributionCost', window );">Shipping and distribution cost</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising expense</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="nump">300<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashCurrent', window );">Current restricted cash</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse', window );">Impairment of long-lived assets held-for-use</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">$ 3,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">778<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember', window );">Novel Biotherapeutics</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_FourCustomersMember', window );">Four Customers | Accounts Receivable | Customer Concentration Risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">56.00%<span></span>
</td>
<td class="nump">58.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_LetterOfCreditMember', window );">Letter of Credit | Cash Deposit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashNoncurrent', window );">Restricted cash</a></td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AccountingPoliciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounting Policies</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AccountingPoliciesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShippingAndDistributionCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shipping And Distribution Cost</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShippingAndDistributionCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483385/720-35-55-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfLongLivedAssetsHeldForUse">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-2<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLongLivedAssetsHeldForUse</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash restricted as to withdrawal or usage, classified as noncurrent. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 210<br> -Topic 954<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477220/954-210-45-5<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_FourCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_FourCustomersMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_LetterOfCreditMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_LetterOfCreditMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=cdxs_CashDepositMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=cdxs_CashDepositMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394146496">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Laboratory equipment</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_ComputerEquipmentAndSoftwareMember', window );">Computer equipment and software</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember', window );">Office equipment and furniture</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_ComputerEquipmentAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_ComputerEquipmentAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398632848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 59,345<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">21,278<span></span>
</td>
<td class="nump">13,733<span></span>
</td>
<td class="nump">17,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">EMEA [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">10,359<span></span>
</td>
<td class="nump">22,907<span></span>
</td>
<td class="nump">56,540<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">Asia Pacific [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">27,708<span></span>
</td>
<td class="nump">33,503<span></span>
</td>
<td class="nump">65,050<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">36,786<span></span>
</td>
<td class="nump">42,906<span></span>
</td>
<td class="nump">116,676<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Total revenues</a></td>
<td class="nump">$ 22,559<span></span>
</td>
<td class="nump">$ 27,237<span></span>
</td>
<td class="nump">$ 21,914<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AmericasMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=us-gaap_EMEAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AsiaPacificMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393776912">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Contracts with Customer (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetGrossCurrent', window );">Contract assets</a></td>
<td class="nump">$ 4,375<span></span>
</td>
<td class="nump">$ 815<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledContractsReceivable', window );">Unbilled receivables</a></td>
<td class="nump">3,208<span></span>
</td>
<td class="nump">9,904<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="nump">$ 450<span></span>
</td>
<td class="nump">$ 10,761<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnbilledContractsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledContractsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395776048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Narrative (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetCreditLossExpense', window );">Impairment charges related to contract assets</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_ShortTermUnbilledReceivablesMember', window );">Short-Term Unbilled Receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate', window );">Unbilled receivables, not billable</a></td>
<td class="nump">2,800,000<span></span>
</td>
<td class="nump">9,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_LongTermUnbilledReceivablesMember', window );">Long-Term Unbilled Receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate', window );">Unbilled receivables, not billable</a></td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="nump">$ 800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueFromContractWithCustomerPaymentTerms', window );">Payment terms</a></td>
<td class="text">30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueFromContractWithCustomerPaymentTerms', window );">Payment terms</a></td>
<td class="text">90 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueFromContractWithCustomerPaymentTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue From Contract With Customer, Payment Terms</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueFromContractWithCustomerPaymentTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetCreditLossExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetCreditLossExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unbilled receivables under long-term contracts that have not been billed and were not billable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(c)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_ShortTermUnbilledReceivablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_ShortTermUnbilledReceivablesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_LongTermUnbilledReceivablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=cdxs_LongTermUnbilledReceivablesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397695408">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Revenue Recognized (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract', window );"><strong>Amounts included in contract liabilities at the beginning of the period:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="nump">$ 10,121<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ChangeInContractWithCustomerLiabilityAbstract', window );"><strong>Changes in the period:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice', window );">Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods</a></td>
<td class="nump">314<span></span>
</td>
<td class="nump">4,165<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition', window );">Performance obligations satisfied from new activities in the period - contract revenue</a></td>
<td class="nump">48,910<span></span>
</td>
<td class="nump">48,041<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized', window );">Total revenues</a></td>
<td class="nump">$ 59,345<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ChangeInContractWithCustomerLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ChangeInContractWithCustomerLiabilityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in estimate of transaction price which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due. Includes, but is not limited to, change in assessment of whether estimate of variable consideration is constrained.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397059488">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Performance Obligation (Details) - Product revenue<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 450<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 350<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 100<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2028-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Performance obligation</a></td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2028-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2028-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394220784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Loss per Share (Details) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total shares excluded as anti-dilutive (in shares)</a></td>
<td class="nump">14,037,000<span></span>
</td>
<td class="nump">9,028,000<span></span>
</td>
<td class="nump">7,442,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember', window );">Shares issuable under the Equity Incentive Plans and ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total shares excluded as anti-dilutive (in shares)</a></td>
<td class="nump">13,613,000<span></span>
</td>
<td class="nump">9,028,000<span></span>
</td>
<td class="nump">7,442,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_WarrantMember', window );">Warrants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total shares excluded as anti-dilutive (in shares)</a></td>
<td class="nump">424,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockMember', window );">ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total shares excluded as anti-dilutive (in shares)</a></td>
<td class="nump">665,160<span></span>
</td>
<td class="nump">568,224<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_WarrantMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_WarrantMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980383993072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Collaborative Arrangements - Narrative (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="9">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jan. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Aug. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 31, 2022 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Jun. 30, 2020 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th"><div>Dec. 31, 2015</div></th>
<th class="th"><div>Feb. 29, 2012</div></th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Sep. 30, 2022 </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>payment </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>payment </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>payment </div>
<div>shares</div>
</th>
<th class="th">
<div>Mar. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2020 </div>
<div>USD ($) </div>
<div>plan</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 10,121<span></span>
</td>
<td class="nump">$ 17,937<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">59,345<span></span>
</td>
<td class="nump">70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">450<span></span>
</td>
<td class="nump">10,761<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,191<span></span>
</td>
<td class="nump">5,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestonePaymentPerTargetGeneMember', window );">Milestone Payment Per Target Gene</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 104,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">36,786<span></span>
</td>
<td class="nump">42,906<span></span>
</td>
<td class="nump">116,676<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product revenue | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 514<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_SitagliptinEnzymeMember', window );">Sitagliptin Enzyme | Revenue Benchmark | Collaborative Arrangement Concentration Risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 22,559<span></span>
</td>
<td class="nump">$ 27,237<span></span>
</td>
<td class="nump">$ 21,914<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,245<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TypeOfArrangementAxis=cdxs_SupplyAgreementMember', window );">Supply Agreement | Product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TypeOfArrangementAxis=cdxs_EnzymeSupplyAgreementMember', window );">Enzyme Supply Agreement | Product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Sitagliptin Enzyme</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Supply Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement', window );">Term of collaborative research and development agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MerckMember', window );">Merck | Supply Agreement | Product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,100<span></span>
</td>
<td class="nump">4,400<span></span>
</td>
<td class="nump">5,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NestecLtd.NestleHealthSciencesMember', window );">Nestec Ltd. (Nestle Health Sciences) | Strategic Collaboration Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,100<span></span>
</td>
<td class="nump">7,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NestleHealthScienceMember', window );">Nestl&#233; Health Science | Acquisition Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_CollaborativeArrangementUpfrontFeeAmount', window );">Collaborative arrangement, upfront fee amount</a></td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="nump">1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis | Milestone One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis | Milestone Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_NovartisMember', window );">Novartis | Computer equipment and software</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm', window );">Contingent annual payments, term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease', window );">Contingent annual receivable increase</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionAnnualPayment', window );">Revenue recognition, annual payment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,000<span></span>
</td>
<td class="nump">$ 6,000<span></span>
</td>
<td class="nump">$ 6,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionNumberOfAnnualPayment', window );">Revenue recognition, number of annual payment | payment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_RocheMember', window );">Roche | Milestone One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment', window );">Number of days for payment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">45 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_RocheMember', window );">Roche | Milestone Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RevenueRecognitionContingentReceivable', window );">Contingent receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_RocheMember', window );">Roche | Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember', window );">Takeda</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_NumberOfProgramPlans', window );">Number of program plans | plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance', window );">Revenue recognized, including opening balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">800<span></span>
</td>
<td class="nump">2,000<span></span>
</td>
<td class="nump">$ 4,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember', window );">Takeda | Up-front Payment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,500<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Commercialization And Enzyme Supply Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractWithCustomerSalesMilestone', window );">Aggregate commercial sales, milestone</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Master Collaboration &amp; Research Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized', window );">Revenue recognized from transactions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series A Preferred Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,050<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series B Preferred Stock | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived', window );">Milestone payments received (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Series A and B Preferred Stock | Master Collaboration &amp; Research Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Product revenue | Master Collaboration &amp; Research Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized', window );">Revenue recognized from transactions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Revenue sharing arrangement | Commercialization And Enzyme Supply Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI | Revenue sharing arrangement | Master Collaboration &amp; Research Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized', window );">Revenue recognized from transactions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MAIAgreementMember', window );">MAI Agreement | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_RelatedPartyTransactionMilestonePaymentReceived', window );">MAI agreement milestone payment received</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PfizerMember', window );">Pfizer | Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,500<span></span>
</td>
<td class="nump">2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PfizerMember', window );">Pfizer | Enzyme Product</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Performance obligations satisfied</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,200<span></span>
</td>
<td class="nump">$ 75,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Contract liabilities: deferred revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">9,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRetainerFee', window );">Contract with customer, liability, retainer fee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 25,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 25,900<span></span>
</td>
<td class="nump">$ 25,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage', window );">Contract with customer, liability, retainer fee, creditable percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">90.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee', window );">Contract with customer, liability, portion of retainer fee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 23,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 23,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage', window );">Contract with customer, liability, retainer fee, non-creditable percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_PfizerMember', window );">Pfizer | Enzyme Product | Revenue from Contract with Customer Benchmark | Customer Concentration Risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems', window );"><strong>Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">54.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_CollaborativeArrangementUpfrontFeeAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Collaborative Arrangement, Upfront Fee Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CollaborativeArrangementUpfrontFeeAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Portion Of Retainer Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerLiabilityRetainerFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Retainer Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRetainerFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Retainer Fee, Creditable Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with Customer, Liability, Revenue Recognized, Including Opening Balance</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ContractWithCustomerSalesMilestone">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Sales Milestone</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ContractWithCustomerSalesMilestone</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_NumberOfProgramPlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number Of Program Plans</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_NumberOfProgramPlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RelatedPartyTransactionMilestonePaymentReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Related Party Transaction, Milestone Payment Received</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RelatedPartyTransactionMilestonePaymentReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionAnnualPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Annual Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionAnnualPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionContingentAnnualPaymentsTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Annual Payments, Term</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentAnnualPaymentsTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionContingentAnnualReceivableIncrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Annual Receivable Increase</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentAnnualReceivableIncrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionContingentReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Contingent Receivable</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionContingentReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Milestone Revenue, Number Of Days For Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_RevenueRecognitionNumberOfAnnualPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue Recognition, Number Of Annual Payment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_RevenueRecognitionNumberOfAnnualPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of collaborative research and development agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 808<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479402/808-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentOwnedBalanceShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of investment owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477439/946-210-55-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentOwnedBalanceShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of gross operating revenue recognized in a nonmonetary transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 845<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482864/845-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestonePaymentPerTargetGeneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestonePaymentPerTargetGeneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_SitagliptinEnzymeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_SitagliptinEnzymeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=cdxs_CollaborativeArrangementConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=cdxs_CollaborativeArrangementConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TypeOfArrangementAxis=cdxs_SupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TypeOfArrangementAxis=cdxs_SupplyAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TypeOfArrangementAxis=cdxs_EnzymeSupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TypeOfArrangementAxis=cdxs_EnzymeSupplyAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_MerckMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_MerckMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_NestecLtd.NestleHealthSciencesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_NestecLtd.NestleHealthSciencesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TypeOfArrangementAxis=cdxs_StrategicCollaborationAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TypeOfArrangementAxis=cdxs_StrategicCollaborationAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_NestleHealthScienceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_NestleHealthScienceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TypeOfArrangementAxis=cdxs_AcquisitionAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TypeOfArrangementAxis=cdxs_AcquisitionAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_NovartisMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_NovartisMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_MilestoneTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=cdxs_ComputerEquipmentAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=cdxs_ComputerEquipmentAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_RocheMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_RocheMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_TakedaPharmaceuticalCoLtdMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_UpFrontPaymentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis=cdxs_UpFrontPaymentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=cdxs_CommercializationAndEnzymeSupplyAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=cdxs_CommercializationAndEnzymeSupplyAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=cdxs_MasterCollaborationResearchAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=cdxs_MasterCollaborationResearchAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_RoyaltyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_RoyaltyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_MAIAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_MAIAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_PfizerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_PfizerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_EnzymeProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_EnzymeProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_RevenueFromContractWithCustomerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_RevenueFromContractWithCustomerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396805024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">1 Months Ended</th>
<th class="th" colspan="5">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th"><div>Jul. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Nov. 30, 2023</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,191<span></span>
</td>
<td class="nump">$ 5,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,798<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,798<span></span>
</td>
<td class="nump">9,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">59,345<span></span>
</td>
<td class="nump">70,143<span></span>
</td>
<td class="nump">138,590<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,902<span></span>
</td>
<td class="nump">12,215<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount', window );">Equity securities without readily determinable fair value, upward price adjustment, annual amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount', window );">Equity securities without readily determinable fair value, upward (downward) price adjustment, annual amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember', window );">Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,559<span></span>
</td>
<td class="nump">27,237<span></span>
</td>
<td class="nump">21,914<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_SeqWellMember', window );">seqWell | Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember', window );">Common Stock | seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices', window );">Stock issued during period, shares, issued for services (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">205,279<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember', window );">seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,416<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,625<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,416<span></span>
</td>
<td class="nump">2,625<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (2,800)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember', window );">Arzeda</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember', window );">Related Party | Research and development revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 1,245<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (3,900)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember', window );">MAI</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount', window );">Impairment of investment in non-marketable securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Series B Preferred Stock | MAI | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived', window );">Milestone payments received (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,587,049<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Series B Preferred Stock | Arzeda</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">207,070<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember', window );">Series B Preferred Stock | MAI</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentOwnedBalanceShares', window );">Investment owned, balance (in shares)</a></td>
<td class="nump">985,545<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireOtherInvestments', window );">Investments in non-marketable securities</a></td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember', window );">Common Stock | seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">205,279<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">205,279<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember', window );">Common Stock | Arzeda</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion', window );">Convertible preferred stock, shares issued upon conversion (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">41,414<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember', window );">Series A and B Preferred Stock | MAI | Related Party</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1', window );">Noncash or part noncash acquisition, noncash financial or equity instrument consideration, shares issued (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,277,914<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesC1PreferredStockMember', window );">Series C-1 Preferred Stock | seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">88,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_CommonStockWarrantsMember', window );">Common Stock Warrants | seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">44,128<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">44,128<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">44,128<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesCAndC1PreferredStockMember', window );">Series C And C-1 Preferred Stock | seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares', window );">Equity securities without readily determinable fair value (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,088,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,088,256<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Shares</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued for each share of convertible preferred stock that is converted.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-3<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss on investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain from upward price adjustment on investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentOwnedBalanceShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of investment owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477439/946-210-55-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentOwnedBalanceShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares issued as [noncash or part noncash] consideration for a business or asset acquired. Noncash is defined as transactions during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireOtherInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to acquire investments classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireOtherInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesIssuedForServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cdxs_ResearchandDevelopmentRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LegalEntityAxis=cdxs_SeqWellMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=cdxs_SeqWellMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_ArzedaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=us-gaap_RelatedPartyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=cdxs_MolecularAssembliesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_MolecularAssembliesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_ArzedaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis=cdxs_ArzedaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=cdxs_SeriesAAndBPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesC1PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=cdxs_SeriesC1PreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=cdxs_CommonStockWarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=cdxs_CommonStockWarrantsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=cdxs_SeriesCAndC1PreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=cdxs_SeriesCAndC1PreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980382649392">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">$ 2,798<span></span>
</td>
<td class="nump">$ 9,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember', window );">seqWell</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">2,416<span></span>
</td>
<td class="nump">2,625<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_MolecularAssembliesIncMember', window );">MAI</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">6,693<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_OtherAggregatedInvestmentsMember', window );">Other investments in non-marketable equity securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems', window );"><strong>Equity Securities without Readily Determinable Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount', window );">Investment in non-marketable equity securities</a></td>
<td class="nump">$ 382<span></span>
</td>
<td class="nump">$ 382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in equity security without readily determinable fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 321<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479536/321-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_SeqWellMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_MolecularAssembliesIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityOwnedNotReadilyMarketableAxis=cdxs_MolecularAssembliesIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_OtherAggregatedInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_OtherAggregatedInvestmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396762928">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Schedule of Cash, Cash Equivalents, and Short-Term Investments (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">$ 3,284<span></span>
</td>
<td class="nump">$ 8,742<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">67<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="num">(15)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost', window );">Total</a></td>
<td class="nump">73,406<span></span>
</td>
<td class="nump">65,116<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsAndShortTermInvestments', window );">Total</a></td>
<td class="nump">73,458<span></span>
</td>
<td class="nump">65,116<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Fair Value, Inputs, Level 1 | Money market funds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">15,980<span></span>
</td>
<td class="nump">56,374<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">15,980<span></span>
</td>
<td class="nump">56,374<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Fair Value, Inputs, Level 2</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">54,142<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">67<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="num">(15)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">54,194<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Fair Value, Inputs, Level 2 | Commercial paper</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">6,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">6,769<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Fair Value, Inputs, Level 2 | Corporate debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">17,187<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="num">(15)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">17,180<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Fair Value, Inputs, Level 2 | U.S. agency securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">1,989<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">1,991<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Fair Value, Inputs, Level 2 | U.S. treasury securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">28,198<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Unrealized Gains</a></td>
<td class="nump">56<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Unrealized Losses</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">28,254<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">3,284<span></span>
</td>
<td class="nump">8,742<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsAndShortTermInvestments', window );">Total</a></td>
<td class="nump">19,264<span></span>
</td>
<td class="nump">65,116<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents | Fair Value, Inputs, Level 1 | Money market funds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">15,980<span></span>
</td>
<td class="nump">56,374<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents | Fair Value, Inputs, Level 2</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents | Fair Value, Inputs, Level 2 | Commercial paper</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents | Fair Value, Inputs, Level 2 | Corporate debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents | Fair Value, Inputs, Level 2 | U.S. agency securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember', window );">Cash and Cash Equivalents | Fair Value, Inputs, Level 2 | U.S. treasury securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsAndShortTermInvestments', window );">Total</a></td>
<td class="nump">54,194<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments | Fair Value, Inputs, Level 1 | Money market funds</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments | Fair Value, Inputs, Level 2</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">54,194<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments | Fair Value, Inputs, Level 2 | Commercial paper</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">6,769<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments | Fair Value, Inputs, Level 2 | Corporate debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">17,180<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments | Fair Value, Inputs, Level 2 | U.S. agency securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">1,991<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember', window );">Short-term Investments | Fair Value, Inputs, Level 2 | U.S. treasury securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value</a></td>
<td class="nump">$ 28,254<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash, Cash Equivalents And Short Term Investments, Amortized Cost</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 103<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-103<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Cash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477796/946-210-45-21<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 210<br> -Topic 946<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477796/946-210-45-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Cash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsAndShortTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash includes currency on hand as well as demand deposits with banks or financial institutions. It also includes other kinds of accounts that have the general characteristics of demand deposits in that the customer may deposit additional funds at any time and effectively may withdraw funds at any time without prior notice or penalty. Cash equivalents, excluding items classified as marketable securities, include short-term, highly liquid Investments that are both readily convertible to known amounts of cash, and so near their maturity that they present minimal risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify under that definition. Original maturity means original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three years ago does not become a cash equivalent when its remaining maturity is three months. Short-term investments, exclusive of cash equivalents, generally consist of marketable securities intended to be sold within one year (or the normal operating cycle if longer) and may include trading securities, available-for-sale securities, or held-to-maturity securities (if maturing within one year), as applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsAndShortTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_MoneyMarketFundsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_MoneyMarketFundsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_CommercialPaperMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CommercialPaperMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=us-gaap_CashAndCashEquivalentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=us-gaap_ShortTermInvestmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396770320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Narrative (Details) - Convertible Debt - USD ($)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff', window );">Credit losses</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss', window );">Other-than-temporary impairment losses</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of writeoff of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_ConvertibleDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecurityOwnedNotReadilyMarketableAxis=us-gaap_ConvertibleDebtMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393825040">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Details - Schedule of Inventory Components (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNetAbstract', window );"><strong>Schedule of Inventory Components</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterials', window );">Raw materials</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 108<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcess', window );">Work in process</a></td>
<td class="nump">29<span></span>
</td>
<td class="nump">7<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Finished goods</a></td>
<td class="nump">1,770<span></span>
</td>
<td class="nump">2,570<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Total inventories</a></td>
<td class="nump">$ 1,799<span></span>
</td>
<td class="nump">$ 2,685<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNetAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterials</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcess">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcess</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397515184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2023</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expense, current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,700<span></span>
</td>
<td class="nump">$ 4,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other assets, current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">500<span></span>
</td>
<td class="nump">600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment and other charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">165<span></span>
</td>
<td class="nump">9,984<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">778<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">2,463<span></span>
</td>
<td class="nump">$ 3,241<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember', window );">Novel Biotherapeutics</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember', window );">San Carlos</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsLineItems', window );"><strong>Cash and Cash Equivalents [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment and other charges</a></td>
<td class="nump">$ 7,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLeasehold', window );">Impairment of leasehold</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfLeasehold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The adjustment to reduce the value of existing agreements that specify the lessee's rights to use the leased property. This expense is charged when the estimates of future profits generated by the leased property are reduced.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLeasehold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482955/340-10-05-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483032/340-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=cdxs_NovelBiotherapeuticsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394953776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details - Property and Equipment, net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment</a></td>
<td class="nump">$ 55,132<span></span>
</td>
<td class="nump">$ 54,798<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation</a></td>
<td class="num">(40,935)<span></span>
</td>
<td class="num">(39,311)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">14,197<span></span>
</td>
<td class="nump">15,487<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">4,845<span></span>
</td>
<td class="nump">5,518<span></span>
</td>
<td class="nump">$ 5,402<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and development</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">3,964<span></span>
</td>
<td class="nump">4,594<span></span>
</td>
<td class="nump">4,556<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember', window );">Selling, general and administrative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">881<span></span>
</td>
<td class="nump">924<span></span>
</td>
<td class="nump">$ 846<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_LaboratoryEquipmentMember', window );">Laboratory equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment</a></td>
<td class="nump">35,949<span></span>
</td>
<td class="nump">37,216<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisposals', window );">Equipment retired during period</a></td>
<td class="nump">2,600<span></span>
</td>
<td class="nump">3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold improvements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment</a></td>
<td class="nump">12,159<span></span>
</td>
<td class="nump">11,912<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember', window );">Computer equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment</a></td>
<td class="nump">2,459<span></span>
</td>
<td class="nump">2,565<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember', window );">Office furniture and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment</a></td>
<td class="nump">1,124<span></span>
</td>
<td class="nump">1,469<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember', window );">Construction in progress</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Property, Plant and Equipment, Net, by Type [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment</a></td>
<td class="nump">$ 3,441<span></span>
</td>
<td class="nump">$ 1,636<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisposals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of divestiture of long-lived, physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisposals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_LaboratoryEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_LaboratoryEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ComputerEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cdxs_OfficeEquipmentAndFurnitureMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483262224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Balance Sheet Details - Schedule of Goodwill (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill at beginning of period</a></td>
<td class="nump">$ 2,463<span></span>
</td>
<td class="nump">$ 3,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Impairment</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(778)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill at end of period</a></td>
<td class="nump">$ 2,463<span></span>
</td>
<td class="nump">$ 2,463<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395720112">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Balance Sheet Details - Other Accrued Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent', window );">Accrued professional and outside service fees</a></td>
<td class="nump">$ 3,064<span></span>
</td>
<td class="nump">$ 2,330<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseObligation', window );">Accrued purchases</a></td>
<td class="nump">2,908<span></span>
</td>
<td class="nump">1,402<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent', window );">Other</a></td>
<td class="nump">251<span></span>
</td>
<td class="nump">1,003<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Total other accrued liabilities</a></td>
<td class="nump">$ 6,223<span></span>
</td>
<td class="nump">$ 4,735<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PurchaseObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PurchaseObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980389842608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Narrative (Details)<br></strong></div></th>
<th class="th" colspan="3">1 Months Ended</th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2024</div></th>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 30, 2023 </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>executive </div>
<div>installment </div>
<div>shares</div>
</th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Mar. 31, 2023</div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>installment </div>
<div>time </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Aug. 31, 2024 </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2023 </div>
<div>shares</div>
</th>
<th class="th">
<div>Jun. 30, 2019 </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 22, 2019 </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based payment arrangement, expense | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,000,000.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_NumberOfOtherFormerExecutive', window );">Number of other former executive | executive</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_NumberOfFormerExecutives', window );">Number of former executives | executive</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease', window );">Share-based payment arrangement, expense, increase (decrease) | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (400,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,837,000<span></span>
</td>
<td class="nump">2,046,000<span></span>
</td>
<td class="nump">2,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of options exercised | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600,000<span></span>
</td>
<td class="nump">$ 700,000<span></span>
</td>
<td class="nump">$ 3,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted average grant date fair value (in dollars per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2.05<span></span>
</td>
<td class="nump">$ 3.31<span></span>
</td>
<td class="nump">$ 4.99<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Unrecognized compensation cost, options | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GranteeStatusAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember', window );">Nonemployee Awards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,000<span></span>
</td>
<td class="nump">50,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of options exercised | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 44,000<span></span>
</td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted average grant date fair value (in dollars per share) | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2.19<span></span>
</td>
<td class="nump">$ 1.05<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2022InducementPlanMember', window );">2022 Inducement Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2019PlanMember', window );">2019 Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Total shares remaining available for issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,897,144<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2019AmendedPlanMember', window );">2019 Amended Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,897,144<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized', window );">Share-based compensation arrangement by share-based payment ward, number of additional shares authorized (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Shares reserved for future issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cdxs_A2019And2024InducementPlanMember', window );">2019 and 2024 Inducement Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Total shares remaining available for issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,937,070<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,937,070<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_A2024InducementPlanMember', window );">2024 Inducement Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember', window );">ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Shares reserved for future issuance (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,736,843<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,736,843<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod', window );">Share-based compensation arrangement by share-based payment award, consecutive offering period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">24 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent', window );">Option price as a percent of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">85.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount', window );">Share-based compensation arrangement by share-based payment award, maximum employee subscription amount | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 25,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Share-based compensation arrangement by share-based payment award, shares issued in period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">263,157<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based payment arrangement, expense | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based payment arrangement, nonvested award, cost not yet recognized, amount | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Expiration period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService', window );">Expiration period of options upon employee's termination of service</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years 3 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options | Tranche One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</a></td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="nump">33.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options | Tranche Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</a></td>
<td class="text">2 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="nump">67.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">75.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,530,000<span></span>
</td>
<td class="nump">1,049,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year 9 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Equity instruments other than options, aggregate intrinsic value, vested | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100,000<span></span>
</td>
<td class="nump">$ 1,100,000<span></span>
</td>
<td class="nump">$ 1,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs | Tranche One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">33.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs | Tranche Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period of units granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments', window );">Share-based compensation arrangement by share-based payment award, number of installments | installment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier', window );">Threshold level multiplier</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | Tranche One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | Tranche Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | 2022 PSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate', window );">Estimated performance goal achievement rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">85.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | 2022 PBO</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate', window );">Estimated performance goal achievement rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">42.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | 2022 PSU And 2022 PBO | Tranche One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">PBOs | 2022 PSU And 2022 PBO | Tranche Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage', window );">Award vesting rights percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceShareUnitsPSUsMember', window );">Performance Share Units (PSUs)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier', window );">Share-based compensation arrangement by share-based payment award, performance goals achieved, superior level, shares eligible to vest, multiplier | time</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">733,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate intrinsic value of options exercised | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">211,000<span></span>
</td>
<td class="nump">277,000<span></span>
</td>
<td class="nump">159,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted-average remaining amortization period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Equity instruments other than options, aggregate intrinsic value, vested | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000,000.0<span></span>
</td>
<td class="nump">$ 400,000<span></span>
</td>
<td class="nump">$ 500,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember', window );">PSUs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">686,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Equity instruments other than options, aggregate intrinsic value, vested | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">900,000<span></span>
</td>
<td class="nump">$ 1,600,000<span></span>
</td>
<td class="nump">$ 2,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Unrecognized compensation cost, awards other than options | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_NumberOfFormerExecutives">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number Of Former Executives</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_NumberOfFormerExecutives</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_NumberOfOtherFormerExecutive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number Of Other Former Executive</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_NumberOfOtherFormerExecutive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Payment Arrangement, Expense, Increase (Decrease)</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate number of common shares reserved for future issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of additional shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of vesting of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Purchase price of common stock expressed as a percentage of its fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GranteeStatusAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GranteeStatusAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2022InducementPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2022InducementPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2019PlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2019PlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2019AmendedPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2019AmendedPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2019And2024InducementPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2019And2024InducementPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_A2024InducementPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_A2024InducementPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VestingAxis=us-gaap_ShareBasedCompensationAwardTrancheTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2022PSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2022PSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2022PBOMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2022PBOMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cdxs_A2022PSUAnd2022PBOMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cdxs_A2022PSUAnd2022PBOMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceShareUnitsPSUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceShareUnitsPSUsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980399271728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Stock-Based Compensation Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">$ 13,087<span></span>
</td>
<td class="nump">$ 9,971<span></span>
</td>
<td class="nump">$ 14,531<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">6,423<span></span>
</td>
<td class="nump">3,962<span></span>
</td>
<td class="nump">4,167<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_RSUsAndRSAsMember', window );">RSUs and RSAs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">4,717<span></span>
</td>
<td class="nump">4,447<span></span>
</td>
<td class="nump">4,807<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember', window );">PSUs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">247<span></span>
</td>
<td class="nump">1,649<span></span>
</td>
<td class="nump">3,268<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">1,357<span></span>
</td>
<td class="num">(112)<span></span>
</td>
<td class="nump">2,289<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember', window );">ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">343<span></span>
</td>
<td class="nump">25<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember', window );">Costs of product revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">429<span></span>
</td>
<td class="nump">354<span></span>
</td>
<td class="nump">452<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and development</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">2,928<span></span>
</td>
<td class="nump">2,631<span></span>
</td>
<td class="nump">3,907<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember', window );">Selling, general and administrative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">$ 9,730<span></span>
</td>
<td class="nump">$ 6,986<span></span>
</td>
<td class="nump">$ 10,172<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_RSUsAndRSAsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_RSUsAndRSAsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980396808912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Assumptions Used (Details)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">5 years 10 months 24 days<span></span>
</td>
<td class="text">5 years 9 months 18 days<span></span>
</td>
<td class="text">5 years 8 months 12 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="nump">73.30%<span></span>
</td>
<td class="nump">66.20%<span></span>
</td>
<td class="nump">62.10%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">3.90%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">3.10%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember', window );">Nonemployee Awards</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">5 years 9 months 18 days<span></span>
</td>
<td class="text">5 years 9 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="nump">74.70%<span></span>
</td>
<td class="nump">70.10%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">4.40%<span></span>
</td>
<td class="nump">4.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years 7 months 6 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54.90%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.80%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember', window );">ESPP</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life (years)</a></td>
<td class="text">1 year 2 months 12 days<span></span>
</td>
<td class="text">4 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility</a></td>
<td class="nump">89.40%<span></span>
</td>
<td class="nump">89.60%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">4.60%<span></span>
</td>
<td class="nump">5.30%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_ShareBasedPaymentArrangementNonemployeeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397908352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Option Activity (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, beginning of period (in shares)</a></td>
<td class="nump">5,174<span></span>
</td>
<td class="nump">4,250<span></span>
</td>
<td class="nump">2,935<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares)</a></td>
<td class="nump">4,837<span></span>
</td>
<td class="nump">2,046<span></span>
</td>
<td class="nump">2,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised (in shares)</a></td>
<td class="num">(399)<span></span>
</td>
<td class="num">(283)<span></span>
</td>
<td class="num">(410)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(484)<span></span>
</td>
<td class="num">(839)<span></span>
</td>
<td class="num">(275)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end of period (in shares)</a></td>
<td class="nump">9,128<span></span>
</td>
<td class="nump">5,174<span></span>
</td>
<td class="nump">4,250<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable (in shares)</a></td>
<td class="nump">2,840<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested and expected to vest (in shares)</a></td>
<td class="nump">8,508<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 7.31<span></span>
</td>
<td class="nump">$ 8.88<span></span>
</td>
<td class="nump">$ 8.90<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted (in dollars per share)</a></td>
<td class="nump">3.08<span></span>
</td>
<td class="nump">5.23<span></span>
</td>
<td class="nump">8.90<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised (in dollars per share)</a></td>
<td class="nump">3.24<span></span>
</td>
<td class="nump">1.97<span></span>
</td>
<td class="nump">2.33<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">8.75<span></span>
</td>
<td class="nump">12.08<span></span>
</td>
<td class="nump">19.01<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, end of period (in dollars per share)</a></td>
<td class="nump">5.17<span></span>
</td>
<td class="nump">$ 7.31<span></span>
</td>
<td class="nump">$ 8.88<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable (in dollars per share)</a></td>
<td class="nump">8.05<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 5.27<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Additional Disclosures</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted average remaining contractual terms</a></td>
<td class="text">6 years 3 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, exercisable options</a></td>
<td class="text">4 years 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, vested and expected to vest options</a></td>
<td class="text">6 years 2 months 12 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate intrinsic value, outstanding</a></td>
<td class="nump">$ 8,497<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value, exercisable options</a></td>
<td class="nump">402<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, options vested and expected to vest</a></td>
<td class="nump">$ 7,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price of options that were either forfeited or expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397589488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-based Compensation - Award Activity (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract', window );"><strong>Exercisable and Expected to Vest</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable (in shares)</a></td>
<td class="nump">2,840,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested and expected to vest (in shares)</a></td>
<td class="nump">8,508,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable (in dollars per share)</a></td>
<td class="nump">$ 8.05<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 5.27<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, exercisable options</a></td>
<td class="text">4 years 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, vested and expected to vest options</a></td>
<td class="text">6 years 2 months 12 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value, exercisable options</a></td>
<td class="nump">$ 402<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, options vested and expected to vest</a></td>
<td class="nump">$ 7,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember', window );">RSAs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">325,000<span></span>
</td>
<td class="nump">181,000<span></span>
</td>
<td class="nump">80,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="nump">211,000<span></span>
</td>
<td class="nump">277,000<span></span>
</td>
<td class="nump">159,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="num">(302,000)<span></span>
</td>
<td class="num">(133,000)<span></span>
</td>
<td class="num">(58,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">234,000<span></span>
</td>
<td class="nump">325,000<span></span>
</td>
<td class="nump">181,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 3.48<span></span>
</td>
<td class="nump">$ 8.45<span></span>
</td>
<td class="nump">$ 17.53<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="nump">3.32<span></span>
</td>
<td class="nump">2.89<span></span>
</td>
<td class="nump">7.53<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="nump">3.31<span></span>
</td>
<td class="nump">9.04<span></span>
</td>
<td class="nump">18.42<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 3.56<span></span>
</td>
<td class="nump">$ 3.48<span></span>
</td>
<td class="nump">$ 8.45<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">RSUs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">1,020,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
<td class="nump">232,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="nump">1,530,000<span></span>
</td>
<td class="nump">1,049,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="num">(383,000)<span></span>
</td>
<td class="num">(204,000)<span></span>
</td>
<td class="num">(106,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(157,000)<span></span>
</td>
<td class="num">(343,000)<span></span>
</td>
<td class="num">(126,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">2,010,000<span></span>
</td>
<td class="nump">1,020,000<span></span>
</td>
<td class="nump">518,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 7.66<span></span>
</td>
<td class="nump">$ 18.15<span></span>
</td>
<td class="nump">$ 21.83<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="nump">3.08<span></span>
</td>
<td class="nump">5.24<span></span>
</td>
<td class="nump">17.46<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="nump">8.96<span></span>
</td>
<td class="nump">18.42<span></span>
</td>
<td class="nump">21.21<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">4.66<span></span>
</td>
<td class="nump">9.71<span></span>
</td>
<td class="nump">19.55<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 4.16<span></span>
</td>
<td class="nump">$ 7.66<span></span>
</td>
<td class="nump">$ 18.15<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember', window );">PSUs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">292,000<span></span>
</td>
<td class="nump">667,000<span></span>
</td>
<td class="nump">128,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">686,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares)</a></td>
<td class="num">(248,000)<span></span>
</td>
<td class="num">(315,000)<span></span>
</td>
<td class="num">(107,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(44,000)<span></span>
</td>
<td class="num">(75,000)<span></span>
</td>
<td class="num">(40,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod', window );">Other (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">292,000<span></span>
</td>
<td class="nump">667,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 7.69<span></span>
</td>
<td class="nump">$ 9.41<span></span>
</td>
<td class="nump">$ 21.24<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9.55<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested (in dollars per share)</a></td>
<td class="nump">7.69<span></span>
</td>
<td class="nump">11.02<span></span>
</td>
<td class="nump">20.52<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">7.69<span></span>
</td>
<td class="nump">12.49<span></span>
</td>
<td class="nump">19.93<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue', window );">Other (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25.05<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 7.69<span></span>
</td>
<td class="nump">$ 9.41<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember', window );">PBOs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Number of Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, beginning of period (in shares)</a></td>
<td class="nump">1,648,000<span></span>
</td>
<td class="nump">1,826,000<span></span>
</td>
<td class="nump">1,840,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">733,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited/Expired (in shares)</a></td>
<td class="num">(73,000)<span></span>
</td>
<td class="num">(178,000)<span></span>
</td>
<td class="num">(747,000)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Non-vested, end of period (in shares)</a></td>
<td class="nump">1,575,000<span></span>
</td>
<td class="nump">1,648,000<span></span>
</td>
<td class="nump">1,826,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Date Fair Value Per Share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, beginning of period (in dollars per share)</a></td>
<td class="nump">$ 5.64<span></span>
</td>
<td class="nump">$ 4.70<span></span>
</td>
<td class="nump">$ 4.11<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9.89<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited/Expired (in dollars per share)</a></td>
<td class="nump">10.23<span></span>
</td>
<td class="nump">9.73<span></span>
</td>
<td class="nump">8.29<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Non-vested, end of period (in dollars per share)</a></td>
<td class="nump">$ 5.43<span></span>
</td>
<td class="nump">$ 5.64<span></span>
</td>
<td class="nump">$ 4.70<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract', window );"><strong>Exercisable and Expected to Vest</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable (in shares)</a></td>
<td class="nump">1,575,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested and expected to vest (in shares)</a></td>
<td class="nump">1,575,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable (in dollars per share)</a></td>
<td class="nump">$ 10.62<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested and expected to vest (in dollars per share)</a></td>
<td class="nump">$ 10.62<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, exercisable options</a></td>
<td class="text">3 years 4 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted average remaining contractual terms, vested and expected to vest options</a></td>
<td class="text">3 years 4 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Aggregate intrinsic value, exercisable options</a></td>
<td class="nump">$ 114<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, options vested and expected to vest</a></td>
<td class="nump">$ 114<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Other, Weighted Average Grant Date Fair Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceStockUnitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=cdxs_PerformanceBasedOptionsPBOsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398294464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Capital Stock (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>May 02, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Feb. 27, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount', window );">Sale of stock, securities registered aggregate amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock, net of issuance costs (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,079,421<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross', window );">Gross proceeds from public offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SaleOfStockConsiderationReceivedOnTransaction', window );">Proceeds from public offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfStockIssuanceCosts', window );">Costs incurred in connection with offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,584<span></span>
</td>
<td class="nump">$ 721<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsidiarySaleOfStockAxis=cdxs_CantorSalesAgreementMember', window );">Cantor Sales Agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SaleOfStockConsiderationReceivedOnTransaction', window );">Proceeds from public offering</a></td>
<td class="nump">$ 75,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockCommissionFeePercent', window );">Sale of stock, commission fee, percent</a></td>
<td class="nump">0.030<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_PiperSandlerCoMember', window );">PSC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockPeriod', window );">Sale of stock, period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_PiperSandlerCoMember', window );">PSC | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockValueOfSharesForIssuance', window );">Sale of stock, value of shares for issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 50,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LegalEntityAxis=cdxs_CantorMember', window );">Cantor</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockValueOfSharesForIssuance', window );">Sale of stock, value of shares for issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 43,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock, net of issuance costs (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,440,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross', window );">Gross proceeds from public offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 31,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SaleOfStockConsiderationReceivedOnTransaction', window );">Proceeds from public offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfStockIssuanceCosts', window );">Costs incurred in connection with offering</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SaleOfStockCommissionFeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Commission Fee, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockCommissionFeePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SaleOfStockConsiderationReceivedOnTransactionGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale of Stock, Consideration Received on Transaction, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockConsiderationReceivedOnTransactionGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SaleOfStockPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Period</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Securities Registered Aggregate Amount</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_SaleOfStockValueOfSharesForIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sale Of Stock, Value Of Shares For Issuance</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_SaleOfStockValueOfSharesForIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483014/272-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482987/272-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfStockLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfStockIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for cost incurred directly with the issuance of an equity security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfStockIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SaleOfStockConsiderationReceivedOnTransaction">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash received on stock transaction after deduction of issuance costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SaleOfStockConsiderationReceivedOnTransaction</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsidiarySaleOfStockAxis=cdxs_CantorSalesAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsidiarySaleOfStockAxis=cdxs_CantorSalesAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LegalEntityAxis=cdxs_PiperSandlerCoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=cdxs_PiperSandlerCoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LegalEntityAxis=cdxs_CantorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LegalEntityAxis=cdxs_CantorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397806944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>401(k) Plan (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jan. 31, 2005 </div>
<div>security</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DefinedContributionPlanParticipantEligibilityAge', window );">Defined contribution plan, participant eligibility, age | security</a></td>
<td class="nump">18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Defined contribution plan, cost | $</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 1.4<span></span>
</td>
<td class="nump">$ 1.6<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DefinedContributionPlanParticipantEligibilityAge">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Defined Contribution Plan, Participant Eligibility, Age</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DefinedContributionPlanParticipantEligibilityAge</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394630416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Components of Loss Before Provision for Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">United States</a></td>
<td class="num">$ (65,231)<span></span>
</td>
<td class="num">$ (76,169)<span></span>
</td>
<td class="num">$ (33,269)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign</a></td>
<td class="num">(11)<span></span>
</td>
<td class="num">(2)<span></span>
</td>
<td class="num">(47)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">$ (65,242)<span></span>
</td>
<td class="num">$ (76,171)<span></span>
</td>
<td class="num">$ (33,316)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393763824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Components of Provision for Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current provision:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="num">$ (6)<span></span>
</td>
<td class="nump">$ 27<span></span>
</td>
<td class="nump">$ 141<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">42<span></span>
</td>
<td class="nump">42<span></span>
</td>
<td class="nump">142<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Total current provision</a></td>
<td class="nump">36<span></span>
</td>
<td class="nump">69<span></span>
</td>
<td class="nump">283<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred benefit:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="num">(2)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(7)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Total deferred benefit</a></td>
<td class="num">(2)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(7)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">$ 34<span></span>
</td>
<td class="nump">$ 69<span></span>
</td>
<td class="nump">$ 276<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398356592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Tax Rate Reconciliation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract', window );"><strong>Income Tax Rate Reconciliation</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Tax benefit at federal statutory rate</a></td>
<td class="num">$ (13,701)<span></span>
</td>
<td class="num">$ (15,995)<span></span>
</td>
<td class="num">$ (6,996)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes', window );">State taxes</a></td>
<td class="num">(3,133)<span></span>
</td>
<td class="num">(2,208)<span></span>
</td>
<td class="num">(494)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch', window );">Research and development credits</a></td>
<td class="num">(419)<span></span>
</td>
<td class="num">(925)<span></span>
</td>
<td class="num">(1,793)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Foreign operations taxed at different rates</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">78<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Stock-based compensation</a></td>
<td class="nump">1,930<span></span>
</td>
<td class="nump">1,967<span></span>
</td>
<td class="nump">239<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther', window );">Other nondeductible items</a></td>
<td class="num">(108)<span></span>
</td>
<td class="nump">438<span></span>
</td>
<td class="num">(238)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation', window );">Executive compensation</a></td>
<td class="nump">306<span></span>
</td>
<td class="nump">152<span></span>
</td>
<td class="nump">80<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">15,159<span></span>
</td>
<td class="nump">16,640<span></span>
</td>
<td class="nump">9,400<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">$ 34<span></span>
</td>
<td class="nump">$ 69<span></span>
</td>
<td class="nump">$ 276<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483303440">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Components of Deferred Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGrossAbstract', window );"><strong>Deferred tax assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net operating losses</a></td>
<td class="nump">$ 82,925<span></span>
</td>
<td class="nump">$ 72,586<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards', window );">Credits</a></td>
<td class="nump">17,660<span></span>
</td>
<td class="nump">16,412<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsDeferredIncome', window );">Deferred revenues</a></td>
<td class="nump">48<span></span>
</td>
<td class="nump">176<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation</a></td>
<td class="nump">4,786<span></span>
</td>
<td class="nump">4,445<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals', window );">Reserves and accruals</a></td>
<td class="nump">2,650<span></span>
</td>
<td class="nump">2,774<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment', window );">Property and Equipment</a></td>
<td class="nump">830<span></span>
</td>
<td class="nump">457<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangible assets</a></td>
<td class="nump">244<span></span>
</td>
<td class="nump">532<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards', window );">Capital losses</a></td>
<td class="nump">452<span></span>
</td>
<td class="nump">424<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment', window );">R&amp;D Capitalization</a></td>
<td class="nump">28,471<span></span>
</td>
<td class="nump">26,821<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses', window );">Unrealized gain/loss</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DeferredTaxAssetsLeaseLiability', window );">Lease liability</a></td>
<td class="nump">7,445<span></span>
</td>
<td class="nump">3,608<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOther', window );">Other assets</a></td>
<td class="nump">4,362<span></span>
</td>
<td class="nump">2,542<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Total deferred tax assets:</a></td>
<td class="nump">149,875<span></span>
</td>
<td class="nump">130,777<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(142,994)<span></span>
</td>
<td class="num">(127,835)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesAbstract', window );"><strong>Deferred tax liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DeferredTaxLiabilitiesRightOfUseAssets', window );">Right-of-use assets</a></td>
<td class="num">(6,895)<span></span>
</td>
<td class="num">(2,958)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Total deferred tax liabilities:</a></td>
<td class="num">(6,895)<span></span>
</td>
<td class="num">(2,958)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Net deferred tax liabilities</a></td>
<td class="num">$ (14)<span></span>
</td>
<td class="num">$ (16)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DeferredTaxAssetsLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Lease Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DeferredTaxAssetsLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DeferredTaxLiabilitiesRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Right-of-use Assets</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DeferredTaxLiabilitiesRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsCapitalLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible capital loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsCapitalLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsDeferredIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsDeferredIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGrossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGrossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from in-process research and development cost acquired in business combination or from joint venture formation or both.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from unrealized losses on foreign currency transactions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980483275360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount', window );">Increase (decrease) in deferred tax asset valuation allowance</a></td>
<td class="nump">$ 15,200<span></span>
</td>
<td class="nump">$ 16,700<span></span>
</td>
<td class="nump">$ 9,400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Interest and penalties recognize in income tax expense</a></td>
<td class="nump">42<span></span>
</td>
<td class="nump">42<span></span>
</td>
<td class="nump">42<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties recognized on the balance sheet</a></td>
<td class="nump">600<span></span>
</td>
<td class="nump">600<span></span>
</td>
<td class="nump">500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate', window );">Unrecognized tax benefits that would impact effective tax rate</a></td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394180640">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems', window );"><strong>Operating Loss and Tax Credit Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating losses, amount</a></td>
<td class="nump">$ 182,918<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration', window );">Net operating losses, not subject to expiration, amount</a></td>
<td class="nump">158,554<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAmount', window );">Tax credits, amount</a></td>
<td class="nump">19,073<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems', window );"><strong>Operating Loss and Tax Credit Carryforwards [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net operating losses, amount</a></td>
<td class="nump">175,040<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAmount', window );">Tax credits, amount</a></td>
<td class="nump">$ 20,791<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>[Line Items] for Operating Loss and Tax Credit Carryforwards [Table]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are not subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395667824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Unrecognized Tax Benefits [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance at beginning of year</a></td>
<td class="nump">$ 20,204<span></span>
</td>
<td class="nump">$ 18,571<span></span>
</td>
<td class="nump">$ 15,261<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Additions based on tax positions related to current year</a></td>
<td class="nump">1,332<span></span>
</td>
<td class="nump">2,164<span></span>
</td>
<td class="nump">3,553<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions to tax position of prior years</a></td>
<td class="nump">82<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions to tax position of prior years</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(531)<span></span>
</td>
<td class="num">(243)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance at end of year</a></td>
<td class="nump">$ 21,618<span></span>
</td>
<td class="nump">$ 20,204<span></span>
</td>
<td class="nump">$ 18,571<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-10B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395764288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Narrative (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2017 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>ft&#178; </div>
<div>renewal_option</div>
</th>
<th class="th">
<div>Sep. 30, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">77,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">77,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_AllowanceForTenantImprovements', window );">Allowance for tenant improvements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,990<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,990<span></span>
</td>
<td class="nump">$ 16,024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Operating lease, write-off due to lease modification</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(18,747)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment and other charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">165<span></span>
</td>
<td class="nump">9,984<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetRetirementObligation', window );">Asset retirement obligation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_IndemnificationGuaranteeMember', window );">Indemnification agreement</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossContingencyAccrualCarryingValueCurrent', window );">Accruals for expenses related to indemnification issues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=cdxs_TermLoanMember', window );">Term Loan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Current borrowing capacity</a></td>
<td class="nump">$ 10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity', window );">Current borrowing capacity</a></td>
<td class="nump">$ 5,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage', window );">Accounts receivable borrowing base percentage</a></td>
<td class="nump">80.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=us-gaap_DemandDepositsMember', window );">Demand deposits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestrictedCashAndInvestmentsNoncurrent', window );">Restricted cash and investments, noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember', window );">200-220 Penobscot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember', window );">200-220 Penobscot | Penobscot Space, Five Year Renewal Option | Land</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions', window );">Number of options to extend lease term | renewal_option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRenewalTerm', window );">Renewal term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A400PenoscotMember', window );">400 Penoscot</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">37,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">37,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember', window );">501 Chesapeake</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of real estate property (in square feet) | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember', window );">501 Chesapeake | Chesapeake Space, Five Year Renewal Option | Land</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions', window );">Number of options to extend lease term | renewal_option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRenewalTerm', window );">Renewal term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember', window );">San Carlos</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermPurchaseCommitmentLineItems', window );"><strong>Long-term Purchase Commitment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Lease obligations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Operating lease, write-off due to lease modification</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Asset impairment and other charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfLeasehold', window );">Impairment of leasehold</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease, impairment loss</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_AllowanceForTenantImprovements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Allowance For Tenant Improvements</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_AllowanceForTenantImprovements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_LesseeOperatingLeaseNumberOfRenewalOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Number Of Renewal Options</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_LesseeOperatingLeaseNumberOfRenewalOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Write-off Due To Lease Modification</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseWriteOffDueToLeaseModification</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AreaOfRealEstateProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area of a real estate property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AreaOfRealEstateProperty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:areaItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetRetirementObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 410<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481999/410-20-25-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 410<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481850/410-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetRetirementObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfLeasehold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The adjustment to reduce the value of existing agreements that specify the lessee's rights to use the leased property. This expense is charged when the estimates of future profits generated by the leased property are reduced.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482130/360-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfLeasehold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRenewalTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermPurchaseCommitmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermPurchaseCommitmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyAccrualCarryingValueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyAccrualCarryingValueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of loss from impairment of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479365/842-20-25-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashAndInvestmentsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The noncurrent cash, cash equivalents and investments that is restricted as to withdrawal or usage. Restrictions may include legally restricted deposits held as compensating balances against borrowing arrangements, contracts entered into with others, or entity statements of intention with regard to particular deposits classified as long-term; that is not expected to be released from such existing restrictions within one year of the balance sheet date or operating cycle, whichever is longer. Excludes compensating balance arrangements that are not agreements which legally restrict the use of cash amounts shown on the balance sheet. Includes noncurrent cash equivalents and investments that are similarly restricted as to withdrawal, usage or disposal.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477220/954-210-45-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478600/954-210-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndInvestmentsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_IndemnificationGuaranteeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingenciesByNatureOfContingencyAxis=us-gaap_IndemnificationGuaranteeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=cdxs_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=cdxs_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=us-gaap_DemandDepositsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis=us-gaap_DemandDepositsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A200220PenobscotMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseContractualTermAxis=cdxs_PenobscotSpaceFiveYearRenewalOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseContractualTermAxis=cdxs_PenobscotSpaceFiveYearRenewalOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A400PenoscotMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A400PenoscotMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_A501ChesapeakeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseContractualTermAxis=cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseContractualTermAxis=cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis=cdxs_SanCarlosMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395224192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseRightOfUseAssetRollForward', window );"><strong>Operating Lease, Right-of-Use Asset [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Beginning balance, right-of-use assets - operation leases, net</a></td>
<td class="nump">$ 13,137<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Amortization of right-of-use assets</a></td>
<td class="num">(3,184)<span></span>
</td>
<td class="num">$ (4,405)<span></span>
</td>
<td class="num">$ (4,849)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification', window );">Addition due to lease modification</a></td>
<td class="nump">18,747<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Ending balance, right-of-use assets - operation leases, net</a></td>
<td class="nump">28,700<span></span>
</td>
<td class="nump">13,137<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseLiabilityRollForward', window );"><strong>Operating Lease, Liability [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Beginning balance, lease obligations - operating leases, net</a></td>
<td class="nump">16,024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Lease payments</a></td>
<td class="num">(4,727)<span></span>
</td>
<td class="num">(9,897)<span></span>
</td>
<td class="num">$ (6,506)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseInterestAccretion', window );">Interest accretion</a></td>
<td class="nump">946<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification', window );">Addition due to lease modification</a></td>
<td class="nump">18,747<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Ending balance, lease obligations - operating leases, net</a></td>
<td class="nump">$ 30,990<span></span>
</td>
<td class="nump">$ 16,024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLeaseInterestAccretion">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Interest Accretion</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseInterestAccretion</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLeaseLiabilityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseLiabilityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Right-of-Use Asset Due To Lease Modification</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLeaseRightOfUseAssetRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Right-of-Use Asset</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseRightOfUseAssetRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OperatingLeaseWriteOffDueToLeaseModification">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Write-off Due To Lease Modification</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OperatingLeaseWriteOffDueToLeaseModification</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>96
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395879424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Lease Costs (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_FinanceLeaseCost', window );">Finance lease costs</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 18<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">4,130<span></span>
</td>
<td class="nump">6,310<span></span>
</td>
<td class="nump">7,321<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term lease costs</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">40<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Total lease cost</a></td>
<td class="nump">4,130<span></span>
</td>
<td class="nump">6,310<span></span>
</td>
<td class="nump">7,379<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_VariableLeaseCost', window );">Variable lease, cost</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_FinanceLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Finance Lease, Cost</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_FinanceLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term lease cost, excluding expense for lease with term of one month or less.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398426864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies - Other Lease Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_CashPaidAbstract', window );"><strong>Cash paid:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating cash flows from operating leases</a></td>
<td class="nump">$ 4,727<span></span>
</td>
<td class="nump">$ 9,897<span></span>
</td>
<td class="nump">$ 6,506<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_OtherInformationAbstract', window );"><strong>Other information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted-average remaining lease term (in years)</a></td>
<td class="text">7 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted-average discount rate</a></td>
<td class="nump">7.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_CashPaidAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash Paid</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_CashPaidAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_OtherInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Other Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_OtherInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980393838208">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Maturity Analysis of Operating Lease (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract', window );"><strong>Operating Leases</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 4,868<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">5,014<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2027</a></td>
<td class="nump">4,053<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2028</a></td>
<td class="nump">5,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2029</a></td>
<td class="nump">5,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">15,695<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total minimum lease payments</a></td>
<td class="nump">40,395<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="nump">9,405<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Lease obligations</a></td>
<td class="nump">30,990<span></span>
</td>
<td class="nump">$ 16,024<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current portion of lease obligations - Operating leases</a></td>
<td class="nump">2,827<span></span>
</td>
<td class="nump">3,781<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term lease obligations - Operating leases</a></td>
<td class="nump">$ 28,163<span></span>
</td>
<td class="nump">$ 12,243<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980395154576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Debt - Narrative (Details)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Feb. 13, 2024 </div>
<div>USD ($) </div>
<div>tranche </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face value of debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration', window );">Investment, Variable Interest Rate, Type [Extensible Enumeration]</a></td>
<td class="text">Prime Rate [Member]<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnamortizedDiscount', window );">Debt instrument, unamortized discount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,151<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnamortizedDebtIssuanceExpense', window );">Unamortized debt issuance expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">552<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_ClassOfWarrantOrRightFairValue', window );">Class of warrant or right, fair value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">900<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongtermDebtTypeAxis=us-gaap_SecuredDebtMember', window );">Secured Debt | Innovatus Loan Warrants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights', window );">Class of warrant or right, number of securities called by warrants or rights (in shares) | shares</a></td>
<td class="nump">424,028<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Class of warrant or right, exercise price of warrants or rights (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 2.83<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember', window );">Term Loan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration', window );">Investment, Variable Interest Rate, Type [Extensible Enumeration]</a></td>
<td class="text">Prime Rate [Member]<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember', window );">Term Loan | Secured Debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentFacilityFeePercent', window );">Debt instrument, facility fee, percent</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanMember', window );">Innovatus Loan | Secured Debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentTerm', window );">Debt instrument, term</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face value of debt</a></td>
<td class="nump">$ 40,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentNumberOfTranches', window );">Debt instrument, number of tranches | tranche</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Stated interest rate</a></td>
<td class="nump">7.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Basis spread on variable rate</a></td>
<td class="nump">3.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentInterestPaidInKind', window );">Debt instrument, interest, paid in kind</a></td>
<td class="nump">0.020<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentInterestPayableTerm', window );">Debt instrument, interest payable, term</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentExitFeePercent', window );">Debt instrument, exit fee, percent</a></td>
<td class="nump">0.030<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnamortizedDiscount', window );">Debt instrument, unamortized discount</a></td>
<td class="nump">$ 1,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnamortizedDebtIssuanceExpense', window );">Unamortized debt issuance expense</a></td>
<td class="nump">$ 600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpenseDebt', window );">Interest expense, debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,500<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage', window );">Debt instrument, interest rate, effective percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13.10%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanMember', window );">Innovatus Loan | Secured Debt | Maximum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EarlyRepaymentFeePercentage', window );">Early repayment fee, percentage</a></td>
<td class="nump">0.030<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanMember', window );">Innovatus Loan | Secured Debt | Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_EarlyRepaymentFeePercentage', window );">Early repayment fee, percentage</a></td>
<td class="nump">0.010<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanFirstTrancheMember', window );">Innovatus Loan - First Tranche | Secured Debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face value of debt</a></td>
<td class="nump">$ 30,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanSecondTrancheMember', window );">Innovatus Loan - Second Tranche | Secured Debt</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentLineItems', window );"><strong>Debt Instrument [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face value of debt</a></td>
<td class="nump">$ 10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_ClassOfWarrantOrRightFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Class Of Warrant Or Right, Fair Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_ClassOfWarrantOrRightFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentExitFeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Exit Fee, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentExitFeePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentFacilityFeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Facility Fee, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentFacilityFeePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentInterestPaidInKind">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Interest, Paid In Kind</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentInterestPaidInKind</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentInterestPayableTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Interest Payable, Term</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentInterestPayableTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentNumberOfTranches">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Number of Tranches</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentNumberOfTranches</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_EarlyRepaymentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Early Repayment Fee, Percentage</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_EarlyRepaymentFeePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Exercise price per share or per unit of warrants or rights outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69C<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateStatedPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69C<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69E<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69F<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69F<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentUnamortizedDiscount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated amortization, of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-1A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnamortizedDiscount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpenseDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense for debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69E<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69F<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69F<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpenseDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates type of variable interest rate of investment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.12-12A(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column A)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnamortizedDebtIssuanceExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The remaining balance of debt issuance expenses that were capitalized and are being amortized against income over the lives of the respective bond issues. This does not include the amounts capitalized as part of the cost of the utility plant or asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnamortizedDebtIssuanceExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongtermDebtTypeAxis=us-gaap_SecuredDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongtermDebtTypeAxis=us-gaap_SecuredDebtMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfWarrantOrRightAxis=cdxs_InnovatusLoanWarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfWarrantOrRightAxis=cdxs_InnovatusLoanWarrantsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=cdxs_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanFirstTrancheMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanFirstTrancheMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanSecondTrancheMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=cdxs_InnovatusLoanSecondTrancheMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>100
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394159744">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Debt - Schedule of Long-Term Debt Instruments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face value of debt</a></td>
<td class="nump">$ 30,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentPaymentInKindInterest', window );">Add: payment in-kind interest</a></td>
<td class="nump">483<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentAmortizedExitFee', window );">Add: amortized exit fee</a></td>
<td class="nump">125<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnamortizedDiscount', window );">Less: unamortized debt issuance fee</a></td>
<td class="num">(1,151)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnamortizedDebtIssuanceExpense', window );">Less: unamortized debt issuance costs</a></td>
<td class="num">(552)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Total long-term debt</a></td>
<td class="nump">$ 28,905<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentAmortizedExitFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Amortized Exit Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentAmortizedExitFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentPaymentInKindInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Payment In-kind Interest</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentPaymentInKindInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69C<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentUnamortizedDiscount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated amortization, of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-1A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnamortizedDiscount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69C<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnamortizedDebtIssuanceExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The remaining balance of debt issuance expenses that were capitalized and are being amortized against income over the lives of the respective bond issues. This does not include the amounts capitalized as part of the cost of the utility plant or asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnamortizedDebtIssuanceExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394215200">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Debt - Schedule of Maturities of Long-Term Debt (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo', window );">2026</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree', window );">2027</a></td>
<td class="nump">13,264<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour', window );">2028</a></td>
<td class="nump">15,917<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive', window );">2029</a></td>
<td class="nump">2,653<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentCarryingAmount', window );">Total principal payments</a></td>
<td class="nump">31,834<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentAmortizedExitFee', window );">Add: amortized exit fee</a></td>
<td class="nump">125<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest', window );">Less: uncapitalized payment in-kind interest</a></td>
<td class="num">(1,351)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnamortizedDiscount', window );">Less: unamortized debt issuance fee</a></td>
<td class="num">(1,151)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnamortizedDebtIssuanceExpense', window );">Less: unamortized debt issuance costs</a></td>
<td class="num">(552)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Total long-term debt</a></td>
<td class="nump">$ 28,905<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentAmortizedExitFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Amortized Exit Fee</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentAmortizedExitFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Debt Instrument, Uncapitalized Payment In-kind Interest</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentCarryingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentCarryingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentUnamortizedDiscount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated amortization, of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-1A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482900/835-30-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnamortizedDiscount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482949/835-30-55-8<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69B<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69C<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16)(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 470<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnamortizedDebtIssuanceExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The remaining balance of debt issuance expenses that were capitalized and are being amortized against income over the lives of the respective bond issues. This does not include the amounts capitalized as part of the cost of the utility plant or asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnamortizedDebtIssuanceExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>102
<FILENAME>R85.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394300912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Narrative (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1">15 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>segment</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>segment</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cdxs_NumberOfBusinessSegments', window );">Number of business segments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillImpairmentLoss', window );">Goodwill impairment | $</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 778<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cdxs_NumberOfBusinessSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number Of Business Segments</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cdxs_NumberOfBusinessSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cdxs_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>103
<FILENAME>R86.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980398080640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Concentration Risk (Details) - Customer Concentration Risk<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerAMember', window );">Customer A | Revenue, Product and Service Benchmark</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">18.00%<span></span>
</td>
<td class="nump">22.00%<span></span>
</td>
<td class="nump">56.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerBMember', window );">Customer B | Revenue, Product and Service Benchmark</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">13.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerBMember', window );">Customer B | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">16.00%<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerCMember', window );">Customer C | Revenue, Product and Service Benchmark</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerDMember', window );">Customer D | Revenue, Product and Service Benchmark</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerDMember', window );">Customer D | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">18.00%<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerEMember', window );">Customer E | Revenue, Product and Service Benchmark</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerFMember', window );">Customer F | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerGMember', window );">Customer G | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerHMember', window );">Customer H | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=cdxs_CustomerIMember', window );">Customer I | Accounts Receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk, percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478785/954-310-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueProductLineMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueProductLineMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerBMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerBMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerDMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerDMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerEMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerEMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerFMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerFMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerGMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerGMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cdxs_CustomerIMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cdxs_CustomerIMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>104
<FILENAME>R87.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980397807792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment, Geographical and Other Revenue Information - Revenues (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 59,345<span></span>
</td>
<td class="nump">$ 70,143<span></span>
</td>
<td class="nump">$ 138,590<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">21,278<span></span>
</td>
<td class="nump">13,733<span></span>
</td>
<td class="nump">17,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember', window );">EMEA</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">10,359<span></span>
</td>
<td class="nump">22,907<span></span>
</td>
<td class="nump">56,540<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">APAC</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">27,708<span></span>
</td>
<td class="nump">33,503<span></span>
</td>
<td class="nump">65,050<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">UNITED STATES</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">21,300<span></span>
</td>
<td class="nump">13,700<span></span>
</td>
<td class="nump">17,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">43,098<span></span>
</td>
<td class="nump">28,624<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_IE', window );">IRELAND</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">1,800<span></span>
</td>
<td class="nump">500<span></span>
</td>
<td class="nump">37,200<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CH', window );">SWITZERLAND</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">3,400<span></span>
</td>
<td class="nump">11,100<span></span>
</td>
<td class="nump">9,200<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_CN', window );">CHINA</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">9,800<span></span>
</td>
<td class="nump">20,300<span></span>
</td>
<td class="nump">48,600<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_IN', window );">India</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">7,300<span></span>
</td>
<td class="nump">5,700<span></span>
</td>
<td class="nump">8,800<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_SG', window );">SINGAPORE</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesAbstract', window );"><strong>Revenues [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 6,200<span></span>
</td>
<td class="nump">$ 2,400<span></span>
</td>
<td class="nump">$ 3,200<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AmericasMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=us-gaap_EMEAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=us-gaap_EMEAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AsiaPacificMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_IE">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_IE</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CH">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CH</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CN</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_IN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_IN</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_SG">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_SG</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>105
<FILENAME>R88.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45980394828000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2023</div></th>
<th class="th"><div>Nov. 30, 2022</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 3,284<span></span>
</td>
<td class="nump">$ 3,167<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent', window );">Restructuring and related cost, number of positions eliminated, period percent</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="nump">18.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="nump">$ 3,200<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember', window );">Employee Severance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of positions eliminated during the period as a percentage of total positions eliminated during the period in connection with the restructuring plan(s).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>106
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
MGT*T55Y3!1[^WJL_9)6'RBRP(&,6_Q&%<GW;&K102)8XC>43V_Y(B@I=*KV
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
M.RH(XZ#W3YRKBV$.<#TZ_0M02P,$%     @ B8);6J+/R[N(!P  MB$  !@
M  !X;"]W;W)K<VAE971S+W-H965T,RYX;6RM6FUOVS@2_BN$MUCL DXMDGI-
M$P-M@KTKL"]!T^Y]5F0Z%BJ)7I).VOOU-Y0<RQ:'3'K(ET2RA]0SP^$\SU"^
M>)3JJ]X(8<BWMNGTY6QCS/9\L=#51K2E?BNWHH-OUE*UI8%;=;_06R7*53^H
M;18LBM)%6];=;'G1?W:CEA=R9YJZ$S>*Z%W;ENK[!]'(Q\L9G3U]\*F^WQC[
MP6)YL2WOQ:TP7[8W"NX6AUE6=2LZ7<N.*+&^G+VGYU<QMP-ZB[]K\:B/KHEU
MY4[*K_;FX^IR%EE$HA&5L5.4\.]!7(FFL3,!CG_VD\X.S[0#CZ^?9O^M=QZ<
MN2NUN)+-?^J5V5S.\AE9B76Y:\PG^?AOL7<HL?-5LM']7_*XMXUFI-II(]O]
M8$#0UMWPO_RV#\31 !I[!K#] /;2 7P_H(_<8D#6NW5=FG)YH>0C4=8:9K,7
M?6SZT>!-W=EEO#4*OJUAG%E>R4[+IEZ51JS(A[(INTJ06SN=)F?DR^TU^>7-
MK^0-J3OR>2-WNNQ6^F)AX,EV_*+:/^7#\!3F><JUJ-X23N>$12Q&AE^]?#@_
M';X ?P].LX/3K)^/^YS>*24Z0TJMP<]SS)]A@AB?P.ZM<[TM*W$Y@\VCA7H0
ML^7//]$T>H=Y]TJ3G?C*#[[RT.S+JU)O"*P:J>R%^&=7/Y0-.(^NXC!5UD]E
M"\##DA8LA15[.';'M4H32M.#U0G.^( S#N+\)+11=673T"*=0_+WBX3!'&9*
MCP D$9^ 1&QH@4-,#A"3(,3;C53FS C5PG9X +RM+XZ)^_"8%M,XNE81#C ]
M $R#>?U;W<'^K<LFE-GI:V;V*TUVXFUV\#8++L?[JI([6 !@DTI 5M\U O,W
M<Z),(:FCR5H@5E'$/3F='Q#FX;TG.Z. J/;+@:'+G>?&/$LFX%RCG"8XM.(
MK0A"^]+=U4T#FVT,'HJO<![-LH1.\+E&!8T9#I!&(S-%08B?I8%,7D]R&B6?
MR%V](HK3"4S4K"BX!^@1A=(@T-^%UN>D;$ 26?K$(5+GV6<T95.$B%7J66DZ
MLAT-$HPGD'/2";2Z[F<["5.>Y]/JA9D5!<L]:$>^HF'"^@BEM3-2U9Y <O>Q
M65%,P;E6+,U]D1PYBH9)ZD:);5FOB/@&,EH+W1.K-!NAGN@JE*4N)<7T*%Y[
MY AQ,>J+ZDA=-,Q=0PZ\ *1+2D6>94ZB(F8\3CWUDHX$1H.,,54!*,(4*=7N
M3GK&ZA3?2#DTS#D?#[QO%7$GNS-H?KX*8^MG+Z[,=Z(%A+DVOOQUF89EA9,%
MKE6111YY0$<^HF%"ZKNT,[D^VVFQ3P)0^7]MA2I-W=V31D!'%*@,+A&Q_!C6
M'KQK1CGEF0?]2%DTS%DW"KI7!1&VN\X&>VL7PH_6I24**BR;HD7,DCCWH&4C
M?;$P??U+RM4C<"S:7;A,Q.)T*F&?LSH%-M(5"]/57WV]LKG[?#E@+B'1B$ZK
M+6;%8D\Q8$==VDMX*P .8:"XB.A4GF!V/$U2Z@$X4A7C+^HCF[H$-=5O>;R9
M##+>#W>3KS3;J=,C![(P!QYD][;\[M/<S"4QEO-ID4.LDB+V;;R1ZEB8Z@"@
MVED"D:UEZ=(>%Z$@70ZC4""FU0PU\V?W2'4L3'7#-BSW8(]2",7JTEG*F%,P
M7*LXXQ[5PT;28V'2>TKS+;2_]NA-K@>B(/*NJ>_[^&(T@OJ!L%_.IB49L>)9
M[MNN(_NQ,/M=B[4 3VS/ Q)SAV>NRUT\<5("(;B(,A_ D>!8F.!.1=IS*8&T
M9CR-G4WFFO$DYQXIP4=ZXV%ZFP:SIV&;&M5IMJ#'3$@CYJ@(Q"B-?;!'\N//
M]&JRNQ^.</[?%.8NV;&<.N2-F%'&8@][\Y$4>9@41P=6X@[5/=RE.Y87T?10
M 3'S1??HK#'<NPTUK1EC'$YACO1RT*9-@6)6W!?(D<=XF,>&S?8<0I>B<A8Y
MO3!B%A>%CR/X2&4\3&57LFWKX9AQ.,.5G<U. 7T\-)^__"F-()3_BB(/SHRK
M!(+)C5>8Z-3[D2%Y^#CSULCJZT8V*Z'TSS_EC&;O]CT6JK+XJYYLOM9LI[Z/
MG,O#G'NCGNJKME&8DS?1VRB***@N11[*9B<(U"JB-Z42[T@RA^^&&TB4G=E(
M5?]7K.96Y0M2:VTE1G]6L3/:P 4D$1I"EWB=LAPR.75V)&;^W#EIVX*N>(FG
M+(IP7]^1G,[S).K=3(LY%+PG(]Q_4AIR+2K1W@DU+-S3"ZK>$OV*SX'N]%;T
M[QZ;[V@(D</::0A=$X_HY:-TX&'I\'ZUJBV+04FS)U1G=4>J<EM#B4-!NJ(@
M946:.23FVB5Y3+GG."H>U4,<5@^@T7?MKNG?.N[/ST"M*[&Q+X@?(&4[N$<%
M6NS*@F1Z^(/8>'(T'H5#'!8.QXA78EU7-?YJ"CG!35*61]/#:,PP+K+$I\SB
M42'$+VF;M;=XHK!=,9"FA2/,$;,\37WO(N)1-\1AW>!P<;\%?] %Y.4E=AJ
MV6&G 8NCE^KV%PU_E.J^!I78B#4,C-YFP(MJ^)' <&/DMG_/?B>-D6U_N1$E
M@+<&\/U: EWO;^RK^\-/-9;_ U!+ P04    " ")@EM:C^:Y_/$"  !9"@
M&    'AL+W=O<FMS:&5E=',O<VAE970T+GAM;*U676_:,!3]*U8V3:W4$2>0
M !U$:JFJ[6$2*MKV,.W!)!=BU;$SVT"W7S\[23-2PE<W'L ?]YQ[CG--[F@C
MY*-* 31ZRAA78R?5.K]V716GD!'5$3EPL[,0,B/:3.725;D$DA2@C+D^QJ&;
M$<J=:%2L364T$BO-*(>I1&J5943^N@4F-F/'<YX7'N@RU7;!C48Y6<(,])=\
M*LW,K5D2F@%75' D83%V;KSKB8<MH(CX2F&CML;(6ID+\6@GGY*Q@ZTB8!!K
M2T',SQHFP)AE,CI^5J1.G=,"M\?/[/>%>6-F3A1,!/M&$YV.G8&#$EB0%=,/
M8O,1*D.!Y8L%4\4WVI2Q0=]!\4IID55@HR"CO/PE3]5!; &\WAZ 7P'\4P'=
M"M MC);*"EMW1)-H),4&21MMV.R@.)L";=Q0;A_C3$NS2PU.1Q/!E6 T(1H2
M=$L8X3&@F:53Z&)*)'"=@J8Q89?H/7J+7*12LZI&KC;9+8<;5YENRTS^GDQW
M$'=0U[M"/O9[+?#)Z?!N$^X:S[5QOS;N%WS=/7PS;2R;>M1(+- ]Y<8X)0Q-
MA:)%?7V_F2LM397]:+-:<O?:N>W5NU8YB6'LF+NE0*[!B=Z]\4+\H<WX?R)K
M'$.W/H;N(?9H:FX-2&D>OBFU^/$*Y42B-6$K0!>4HT0P1J1".<CRP5^VG4:9
M8E"DL/\;ZPAW,,;>R%UO^SP:UG#0JQWTSG-0%B@B*YT*27^;#>ND7&V57_*'
M6[H"7'Q>Z#\>US 0U :"5QF@2JV.BP]V1+V4?2BB(3BL!8>O$FS>$DH3GE"^
M/*8Z/*KZ4$1#=;]6W3^H>B*RS-SK?RCS_FEE?C2L(7]0RQ^<(?_L&A_L'*>/
M<6N5GQ+9<#"L'0S/=W!:D0]W- V\0= B?C<P' YQL%>[A_^^)_'YZL^H^(K^
M! \MD7M,N%OO?=MT?29R2;E"#!8&BCM]<_5EV<>4$RWRHA68"VT:BV*8FMX/
MI TP^PLA]//$=A=U-QG] 5!+ P04    " ")@EM:+GU'NPD&  "<'   &
M 'AL+W=O<FMS:&5E=',O<VAE970U+GAM;*U9;6_;-A#^*X07#"V0QB+UGCD&
MFGC#"JQ;D+3K9T6B;:&2Z)&TD_[[G5XL62+%.HB^));TW(G/\>[XB%P\,_Y=
M;"F5Z"7/"G$SVTJYNY[/1;RE>22NV(X6\&3->!Y)N.2;N=AQ&B6549[-B65Y
M\SQ*B]ER4=V[Y\L%V\LL+>@]1V*?YQ'_<4LS]GPSP[/CC8=TLY7EC?ERL8LV
M])'*K[M[#E?SUDN2YK00*2L0I^N;V4=\O2)^:5 A_DWILSCYC4HJ3XQ]+R\^
M)3<SJQP1S6@L2Q<1_#O0.YIEI2<8QW^-TUG[SM+P]/?1^Q\5>2#S% EZQ[)O
M:2*W-[-@AA*ZCO:9?&#/?]*&D%OZBUDFJK_HN<%:,Q3OA61Y8PPCR-.B_A^]
M-($X,<#>B %I#,C0P!DQL!L#^UP#IS%PJLC45*HXK"(9+1></2->HL%;^:,*
M9F4-]-.BG/='R>%I"G9R><<*P;(TB21-T*.$?S"I4B"V1O_L*(_*R1'H _KZ
MN$+O+MXCL8TX%2@MT)<MVXNH2,0ENNA=+^82!E:ZG\?-(&[K09"106""/K-"
M;@7ZO4AHTG<P!T8M+7*D=4N,'E<TOD(VOD3$(HYF0'?GF]L:\]7YYL3 QFXG
MR:[\V2/^'NB!%GLJKG6AK4T=O6G9-J[%+HKIS0SZ@J#\0&?+7W_!GO6;+BQ3
M.EM-Y*P7,J<-F6/ROOS"9)1!8ZH#IXM;;>]7]F5W/"S=T';<Q?QP&A 5Y5O8
ML?NHE8K"=N"&5@OK<7!;#JYQVN^8@$J$DD*L+L5B@^@+='PQD@KNE*DPI;/5
M1,YZ8?3:,'K&5"C#6/:S'6?)/I;'I- %L';DG<ZC1X)@D!,:% FL<) 3*LH.
M+-O6IX3?<O&-7!X@.A&/MU56)$ D8[NR8>O(^,H '(]X@]2]4U%N$ 2#,EBI
MJ,"RPE!/)FC)!$8RC[#:0TY?H@TM(+^SBE24P"J7"EGF^T$[28$Z8A<[PTG2
MH&SB6@->&A3!/M'S"EM>X<\F27+(M#TO*S:&%7.C;T&A\O;!^.Y4A$T"9T!"
M \*>K^> K4X86$86'X4 V9GFNRCE98K5C4AN*3=1:ISV2VC85#6@,%1H:5 C
M#16?J!U\QK(0&QJKEA1626$_\)PA+PW.#@@F0V8:G&\[/AZA1SIZQ$CO+R8$
M6G.6'XF!>-,2(LH /KB!B\,A(0W."RQOV.MT.-L)@C%"G?#!1I&P_%1("BL"
MY&$1LUS;#AH/O?3W_&$A:5#.::$W/%04=IPQ%IT6P68QTK+H2JA)MTM40)&]
MN[! 1%O5XPMB!?441K!2994NWT5<_GBO)>^H@<>6'0Z[O!9'B*_4G(K#Q!GA
MW^D8;%S?Z[1\HO"52IN)1#)Z&:DU5Y-R+G'(D)$&YWOXI(8:1AJ<;4.#'"'5
MJ0ILEA7WG!W2ZO,7>/V<ED8.*.U#Q:B5IF*(/\:E4Q78+"O^AB3,8)*T(_<5
M<5M.R,E+F]%K<+Y'G.&2J\/9MAN.++JX4Q/8+">.)!"TOOH[];+<$DAC] X^
M3Q.691$_>:BOI_H5X>G@K*M Z8L:&+Y2^[S6FSO63SI]@<T"0\<T2;-]V2M>
MP34\CZL&IN.J]3;&E70RA)AER+=JYP:(10=8T384%N\\AZ(3DL7?C]L1>P$
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
MO[@BAP='Y(!P2;Z5JC%,YF8<6&3GW@BRGLFT8Q+O81+%Y%8ALB'7,H?\)4"
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
MUQ_ZQOYY$A545.@Y \2<E([+0"._<*_&WN+VVFU"]@C75DD>4L '2XI0O!=
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
MF=)30#)C #D42R:(ATAJF/,UZMVUF=B!<48T,?J0SPO4JT+#6PS:JXA+XZ\
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
MNNQ"X.C'"5ES2)/._"V@BDDD84N+WG(<O4+QS5Q>Z53]@-3'H4@EFT+G>@U
MA?1(U3\]G]J:":D._P]62Z8=[4),SI^_,@0/ 'XR5*<4+@H4_J!\1=G. KTT
M S(7OS9UQ2H22\(=%.WPB#3LBBU$7,R&G#&-BKB>"\;G_DO"D>FM+( (),0D
MX3YX/DOQHX5LM\R&1[KDQ#U=3<35^W^>/I_/7@!5RVJM:HIDZHM.$+P1K4$;
MQZQA"!E$LUH!(*HBV4_LT9 #$]1O+"%BU/I@^,K4#:H/0WD=U#6( Y4=GOLG
MA7"Q$3=,6A%I2)K/)\4UQ3XQ;VG6C%'@&)YOGUA7.!VH_ %-0/@N/<QM4M9Q
M,7@V:?V^+UU9%("YB54=W'E+&1BAU.FYR??Q6O\LC*_@8,<R+R!"RK<0=JQX
MBC^ DC'K44CLJ849&S&;PU@8V=_Y6+D6Q'69_-%D)NNY<U\I4_'W0&>(-_I^
MD+]^."V0I!B\S;O@+<)V=(0J;GK$A'W<^PKP:?CDW6(8RP?A@(S6RL$@.$C]
MP:&0%EJ_-B9;%VQ%;(I8RIDWZ/%Q5B!'IPP\C-&)\QB_L\TUM#2GYB+ .!<S
MJJKW#N$_H6U&5-XQG<&333IF$<"<SJE,(KE3845%I8<4WC%Z=MU)^=F?(7.W
M82DZ)S:)SIIHX^L4R@I?,@<J+2)3?3 V$:N&6RBEKO&1P@@,$(?0'.CVK=0*
M59]:&&QQ;@ T!Q7*Q73V("L&D*KNPN]GA"Q\>#\B_P#A.ESX0P,9>$$<Q B4
MJSY=?FI3Z*<*40Q A9G_&>5:@<C;\9-?Y'X$<'*8T+<(O5!"G*+[$<8]P]7
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
M<F#YYPEC:_A69;%'PB:MX&U)'V!\W+MU5I#>ZTVV,ZKV:-6%]4QN&_2-)N;
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
M/,KH> B=2(EI::;P"$^7051%&1Y: N,5HDY5,[1"BLF!1X; )/3F(=131H,
M1XX'LYJBA3&! .VDP"Z4NWG'0/Y=5C4&(H+RE*$$42!<03;>-;%&;$U5 %R1
M=UJ,+5@(A.;#39UI Y,S+0+3*6Y&P*NN0,5[Y.TU6$U,:T_E >=5D<BE6()]
M(\A-.#4'M2RTQBCJ0=E,.V;F;:FA5,0>C9AIIS4,3P/GJDG#(["-=+\J]D$D
MR0FH-QD:3=V+6T)H?5(+WZ7>/=PV'B?IZ=G>+'HUV,HC4G T2@;I>!VK"*YK
M>'"T2K0O'?W3_BDHZ^+9J K\LQ;Y,7@8)FH0=!:;YA:*6/K;"IB3(FF7D)\4
M:,FG*,E\;&C!VC-B;CQB)W*+,G*3HX=/DO<>[D[Z6QYHV8O4VX%^L@._-=0Z
MWME\U3KH,.IO!X9?8]KM,3]8V8$=MG8Z,HBU,[;YZ.SXHG5'(#JTTSR=\? 1
MF\4_MQ_Y7%#+SDW8/'0[65GG,5^7:+/4J]PL*]ZV-D U\Q-ZZJ-A1_%.WQ5Z
M[3MP'U4*2.""30VI=W$PR[LM+AJO9JS#BPG##8GT,O#P7&$(S+L]/\D %*$I
M)JVW&O]0\UL*V\S8;F].\Y->!+8R:"A#I[_62DX! G)JTR:F4 8Q#HDM%3_9
M)^]19%??7&T2U%':[::VXNEYG:F*[VN^-]R-Y=^4->0D6A_>*&Q4["=RZ2JN
M#C@^SB:E!LOGQ/,+XT(9(%M+"4BHU&;@&!=T;4W/Y$)3@0\36$B!-2[#QAT9
M5NV(X+:4K@(R-LB=V(\1VTQE^?98QNY&WA-.NR*PF2?W.#W&&H^H'7C_XL@Z
MB,&&!S/8(.UX@=3KT(D.D]6*:B+0ST6>Z_@IB7,1R^;^>X._DCW$&0(%&AD,
M\2\B9[[\XZ29["/)@W*I$WB!/ON'TN=P;S!^!X'^:5';;3/^TH"EG#\:?%>V
MQ^#Y[F1O$3VX](03?]I;=PZL,L-5^UOCS+N:K>7)WT48R&+UH!U?:SPYB_,
MURJVU@8]J\,:Y8X[<;O3"5;%) R.S/44BM! B^+JEW1A0Q_O#F6Z13P@C_@*
M=V=W.5RYZX[&1Y2,]G86'Y2K9UD^.MWV0O&1SC$E3Q6.S_Z]SF>!8AJ%X^@$
M]\T7D1F:NSBRJP*COJ)LI-G3+53FVXAOZ3WR3KQ[TVW?YR/?T)V;6N7OQO:V
MJYEBR*HR&IH0$'&:XH:^E,UDQ06Z]B U+* [N%4>)LV /)$37;;7Q2%$:4S>
M+KV^L*:>%?",U:9V:]??#HQ"'Q]67-*UXB*HNJP7\UI45L%=5'CHJDX\WP,G
MZ[7GN\I.>T/5<ICJWO='3W2@&22GX_.D/[HXY#ZL'?GXLA&FTD5TI=HQ_9DR
MD'X'%86;KPU%CL5OC![&GHK+AW99:7@<GIA[Q;>3F.GY?J(R&QC$^P,":$?)
M?O;R%FO:YIGSM1F&FS:##^QXOGM)VP&(@LL]-7RUTN-UO2E+L^2=\7N4#C_M
M#HEG[7C!28PLP%'NY>L=.FQ34U,MCT2:C 9G_/,L/64ZXZQ.WXBSY.QB&/WS
M1[$=CE/^^]E0MCZ[G(X_OQCCYT5RWN^+75]=GG2^A)XKT#M]U4[UHZY\^#ZZ
M_;3]-O\F?(F]6A[^*\ MJ@.YLU13;.T?GY_V0HO0/'BSX*^T)\9[,^=?"R5S
M96D!WD^-\<T#'=#^'X?K_P%02P,$%     @ B8);6KJK[T6R!   ;@L  !D
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
M'T+K>*>-/=6V5G<LZ>GP$.#+O:(S)+Q+D,ASQ>'YHTO[8N5SRXWQ32TP['H
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
MR;EBK^%ECS-LFP(RO 1'G*+*-!N @ ]+*:09 D<T8,6<5@$">!]-+<UWOU0
MUIM85G90+/!41Q9I38!N<E"#C'T ?R_R)6Y'%KTJLCD'.Q06&7TY![W%&C01
MCQM*NI5:Y4J@&G)/SQ1Z+OMB?X38#J(&W\(EA))O,O")<\0+S0J)+CFX&10
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
M$XI&3PU;9$W74D?=NA8Z-CC.5&!'-[&LX&?OU*EE>EZM@X#MPYR^I\0.Z$;
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
M_Z&0@@.?5];ZO1$"]/^\^6]02P,$%     @ B8);6N^0,-E4"@  H!L  !D
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
M 30 [Y=*F?Z&%A@^REW\#U!+ P04    " ")@EM:(:H3!C80  #5+@  &0
M 'AL+W=O<FMS:&5E=',O<VAE970R-"YX;6S-6FUO&S<2_BN$FQ8)H,AZL2T[
M;X#C-'<MTB9(T@:'PWV@=BF)S6JY)7<MJ[_^GAF2NUR].$GORP&&)>V2PYGA
MO#PSY+.-L9_=2JE:W*V+TCT_6=5U]>3TU&4KM99N:"I5XLW"V+6L\=,N3UUE
ME<QYTKHXG8Q&%Z=KJ<N3%\_XV3O[XIEIZD*7ZIT5KEFOI=V^5(79/#\9G\0'
M[_5R5=.#TQ?/*KE4'U3]6_7.XM=I2R77:U4Z;4IAU>+YR?7XR<LS&L\#?M=J
MXY+O@B29&_.9?OR4/S\9$4.J4%E-%"0^;M6-*@HB!#;^##1/VB5I8OH]4G_-
MLD.6N73JQA2?=%ZOGI]<GHA<+613U._-YI\JR'-.]#)3./XO-G[L^>1$9(VK
MS3I,!@=K7?I/>1?TD$RX'!V9, D3)LRW7XBY?"5K^>*9-1MA:32HT1<6E6>#
M.5W2IGRH+=YJS*M?W)CU6M?0<NV$+'-Q8\I:ETM59EJY9Z<UEJ"!IUD@]]*3
MFQPA-YZ(7T!AY<2/9:[R/H%3\-8R.(D,OIS<2_&5RH9B.AZ(R6AR=@^]:2OP
ME.E-_X[ XI5V66%<8Y7X]_7<U196\Y]#:O"+G!U>A#SIB:MDIIZ?P%6<LK?J
MY,4/WXTO1D_O$>&L%>'L/NK?OF?_ SGQME)6TF_Q1L'Z\:"Q8@7W_[.1ME86
M<Z"LPF2R5KG0I7BO\HTQ(*/K[4#<R$(C=)1:#L1FI3!THX3)LJ;:"EE5UMQI
MN)8JMF(V&TQ'([AE0P07%)#, G\+G2GFJY!S U:,W0K6+2VVAO/IJE!BWN@B
M!Y<._E.O\*9>*>'DFMXX".R<J*3]+ R+ T[G6_&+JJVI3*%K68HW>J'$3R6V
M7I:@#:54LMR*AS]\=SF9C)YB+(W@7^.GCX:LAH(T(N32*D7JXZ5%&-G.?/_I
MQJLNS@7?6='D4&5? 9/+P61? 5[4J%]9"QI#Z@!M\4Z59NXR4XM7%L%M<%3Y
MXB'I(W $"J?]V1]HD98_HMYG;3H;7'T%:V>CO\M2?V:?'1YWA&?FE=X?(,"&
MB?C(">"6Q$# 5]:"U]H(Z42R_I&U!P=T,1Y_U3:=C\;B9J6<K)3\K+Y)&<FT
M'C=#\4D)V)FR[&D0@B;I4M=:%L$8>R8(VL+ 3A<RT[!R<N<=!Z7?D&;:ZK&U
M5K&"AN9*(7'"MA'+.U^KD96=@%=!8LPI69WY'TA63((9R8-&F*ZR:T=*HK=,
M? A/$XCL:CU7EB/[@.)"3S8I?L7G2ES3\NQ>06#/7JJPG8&MY?24P3\0C"N8
M0R1US)IV=X#&J[M:A=<D4$\>UK3,<TU( WN!(*--[H;B76-=(SO>=S@=[)'S
MNX@?1'%N,/B;^&PWS7-+IKZRIEEBS69)&S0932=L1RMYBW5**'+\"%&1(=)Q
M*8M6RD/LT/,%[%L\/'\DMDI:YQTGDG<*L1>.\:WK[(FWO]!0?-Q7JX"_WFJ2
M7HH2_HFE: _TFI[[4"T+P%&.]%CYP70X K@J"C W%-<(S&0H,/<^6\PSH5&_
M;3%%6%"4!!GR9&RAY9Q\;NLC"'M'&) 92V9H2LI7PA)L?&P6CQM*)<Z!W3G[
MC_$YK*ER#BF>;"6WG*B]V! (^,0SJ5W'B#>MS4IGJYAL6!6F?)Q)Q\\LDX/W
MMS9VB.]]YD!6TDH0@HFR7[>>''&:9Z^6\T*1/4+5PJWPC]:9RR+J?9^\1R#!
M">:%7DHR&!?6^5F6"+H(P7Z5U@TBR2/<#((22-V\ 2L)>.-$WMCXR#NL>,C
MP30.E-VC)^)]RN"U9_#Q+B0:L(V]/R!+.I1E<CQV0/EA5Y8'8CP=C*<S6+&Q
MM?Z+!3^FI(<8>GGV2%R'D -1.$9YQ:U-KH&:/(7QY6!V-OMF]O:4" 8!4&;(
M?#[BO4UV9T\E+@PR1P9]A3(N!O3E3<_JQ<.SP6PR>X3L08D"X4QFL&26\^KL
MXAO4\6WL'5+&=#2XNAI1'ONY(? VFDPYA\FR- V,,>?,6\$PB9,,2P!HYCX(
M\CJTZ,*:M1]GU:V&W8D/&'\C+6J0F+6W--_L@NZ=/ X\6HH/JJH]GY[-:3].
M];-K2?:LEZ6/AG D_&S65;2Z_22;#+^.B+>?:7^7=]FVAC_\5*)FB_@W/&V'
M,O8B4O0MO*1P'&-M8)?&CV=/G;=_2*+KPB<^'3=?(Q W2'+6!P*?80\I,,8)
MJPJ.I5ZX5HJ!\"&V'V0F5ZS$\8YJ+PZH=M#)08I\_^-CXN(U51*H)XWXU0S%
M!::\>7/3J@6C6I7LX!X48"[@G9T]>JTMY$[R7 (O?+@'638V(MGJY-#6M4J1
MW4O41*G!)".B96!$%/7(=K6[0P [Y-VR2S ^,ZC%PH-RX3UBL<L))9FW66T2
M8SZ8F ])]A79N7/\%FL<<3R-J,,E/%:XE443\<(XX@76TL8:%F,1S(RZ86T@
M27(JS1U?#2]ZDX]@ AJ<8@).<4/Q01,.EZ5"M"BV?5ES15@*U2X1E:3XG.*>
ML6S8A!:T95VI.\UP9*XR26MTFDGVP*,+7R8U-03H<E+J3/O,)DE\98H\Q5TN
M&L,!=0^B-E"F&<LYF9J.#%T(<-PB; 8]UF1@L$5\4%E&.ELT-75M$ _(Y1HV
M?\K+#'@60" .4A/V]VXQ5V*IRM +X##,8KIHC*TL;'9UZ%S@7VF$:^8..\!5
M5U@VP"J_#B::3#-ECHLI.;]AF;1V2URS2;G=-?U*.9ES#HE:X0O5<X)!BF"
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
MPM $C"^T=DV#'+2?EL_^"U!+ P04    " ")@EM:QRQUU\4#  "8"0  &0
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
M7Z?H.E\W4;RVW6;/E>Y==ECJGP4($Z"?YYRKX\1L,/Q^DC=02P,$%     @
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
M'K-*,HE["B99Y-@*X4B#J7;280M\)"'D@XES&9QVHUH[-)+W(@5[;%TUGKB
M+HB9NF*JA?P-N..VCK!S2H$OTU2'N-JH5GCH:BM<@O-HDRJA,E,R;A!LR7(K
MUG5>0IZ%SK%;D?,H2X;&7_BF#9$ E_.-(ZMR17;G8!04C!P$I@DTM5PJ5@Y+
M$;TH17;MNWCTR*EXVZ.S[58@C!PJ PD^\3&M$QC%PD=R:6]'C%5K*C<F+&>P
MD82[$*1$)0?$8Y*H$'P6,0TP3(DHQP?"&FQU OYC<2QL!YW+(%_"Y^ZZ"GR2
MX41 C<%M;ANAB0$L1N+GA,=@$?P96MLER=X!U4(KH,>Z&P J^'=4-?&HG\BR
MK,G*0=BZ2AD?:)550(LH"1GA+--J*=YK2KT$RA^62QC!DNT(!=X91.#77[V<
MSUZ\<N(M:5"<(4JT]X#5@ VE-C8&?DP^X7!X/Q2J^)B6IT'NF7/>&]%8!VYE
M2*2Z0$"L8]D %:8FJ=LT!V],;O@,BQ6IEEUI&GUWDVE@.*LH=Z;30!3QH4)Q
M.M7D%%"OZ6$QZ-T)?QRYJP#3P=FPD4V;YV%![ZRJ*2.@05J+,J9B6#9[ ;;)
M&+/7FC.F73.@RQ!KE)MP/$5[AQ^]0R)*L$+[B;_USX\?SN;DR/@[$WY;H22[
MB,H#& *'"=-8V>232''6$ 2#2L,+=J]DJ?^(JR MGJ'BUD5="*<_/2FH@(VP
M!+!$4Q"#L)_4&V)14 N6A_3K*,QLB #XC:Q"[0&-(W0X;LC8% CALW91&-8
M>4=IP#NE"EI *!CRUM*:XHZ4P('+^(X4""D86(/^">=MC#A)-=0"CW)]H_"'
M'65O/9)1/Z=QS#16<VVE#/D 5P%!*Q5P.(#;LHU@PD8=$O(Y'$=[Q9(CB'*V
M?&LS.F.O? F>/(E)/MXM( !:%" 3@@ ZHJQ,:!B!"^9&TD;,)HS,79*&H\.Y
M:8=)0(IP'=44>?:RSD5<8T(2ZE=82'U9:7*#TC4Z*16M>1HTO7,8I$>-I<HD
M9!N2L]$:H8_.%>.%6B.?DO)P5%PZ+&&O!N(%\?B0X?M%:H;.XI9BFE"4"V?R
MVJOV@*GX"&T1C,Y/7G&M_AX 9:SC>[/9*_&#HGR;B_Y#7H]GG)1C"MDOQ1>F
M#N5:\-4H6.LY0%:34 RD 76D6, =@88@B6('#!<H89IMXT:8CK1/W[3MTS=_
M2?MTT:!E*GY]G\O58$LT?I2WM1KA^'G+\?._G.-[6KG1 X?[UT,+M]MIC!CV
M16O8%U]@V&O.LY?,TO=<VXYYXOA)]WCBRY;AEP]EN,_E!Z171P,S5EL<.  F
M69.=G]XMQ/CI]PCQ;2O$MP_7>IL*W_92YU67-G]LT^:MM5BVTI0?8;.[11OG
M:8FR<$RVV4DW^3MYJ'1<0%.HGJ-+#9C?6>H^I+CGN-[,[!KH@!*V0MG25NL#
M1V>HC-;::6[L*-B@TZ%>'06.J5>90+\T6!\WS\.@@'V+FG<4G MJ+6@R/66>
M]C<3 Z:5/Q9E^XP/E'>[U7$W*>&:CJ<& =-"443M^4['25"GS#*T0[$U;&M9
M+O B#_V#]B<!D]"Q]@<C 4.#SJS*U9K\,!8BMZ3"=4WN^X?:J29B?NV5T+V)
MR]_1]C%SXVW?H='CFFW_618:"Z-Y%B#%;KR?F1K*S&,[[[AM0X&J%ZA"6;K^
M$!C!(G-VU6"LI4PH)H/S$K<]73630HO>J:W>:4W31<31W/ PH@D4;EE"5 [S
MK:D_1.*F8=*2M$?E!_<+:\4>>'$]$3^J%6Q+%(/ST%P-C2@2/'==*-)-TJ]6
M"U706>"_4F4:YVS$>Z(MC$N3RD2U[=G0 (48;J@T@#'(?VJXV0A= AIF2G]Q
MBD-%KMX?[+%+-OVF#%S]3)WF)02/;$#H7J1>=T7QHUC-_WP)M<1*_3$WY.0D
M!55>3'1^(K9*!M:9%ZV"TMJA61P((,$Z=M9>,=2,H,A[7%V1._/&5:U3AOU-
MILJ^MGO2NF;\G/+(XEPEK$-^N3,)LA+KV*+#L8H1"H@5F.-'1 WTN?]N8.TN
MW\$="YWEVZ8/"M.RLINH[:J?303?=6QC$.ANL YI&Z*'AJ>MWD(PWIZ[+\%%
MZ(5A9:(%D#:]61YP-0 $P12$V,C;X<EI2:G;Q)OVNY]AL+%?)+=^&XFJ273?
M6/SJ5;!Z2Y/G#"$U-?/G)J]-]K'2Q:S5@EZ3QFCTB;3>U.6HE+4,2@*^61JD
M,CX2&+,#\10)9KEC:,FX]9LR\+T42<I%G^C*?<Z!89#%'ZDO74N=RUA.P,7/
M3 J'<O\:2'!.Q.%R_Q%'6H0\"]V+1VWD!WXB"+F=OK]Y.;/?M+;]NNOR"WOA
MQ?5CT0Y\NHPP[,MQ,HH .%<4AV2# $-+Y*-[0 BG1(#3Y9H&Y*NNE^DP/D#X
MK>33U@KW@?\>\,MR #F#E\3W5WU6*-1(,!J%+6J>HD!K]!*I5/1&)L#1O@2/
MW&,@;(GT4*:JF=,A&>8P"850Y[[-BZ;XQB6G^3N<E;QJ/[;&TA%/C^#1A&8I
M5[" EMZ@_A9W+&Y&Z7^_B>S%$H(B-V CC$.<TR$#A2+P;K/"HTI%92[:X,E
MU=#4DE0P]XVS:SGF!7BTQ;%]^&A)DXMX%]X[!K@G@CM$)G>5,]$M;U?]4W%9
M6U?'TI0()M 22$X&Z10TUY:=DFX).XG2!M_:E;#_VF"7B;$&J_?5BMGG-5@]
M-5CQL5XD[?75'LP_H/L:Y^70WOP%[<V85\P[KY@_U"OBP(,M'BHXTMK?Z"OC
M'!Y\Y6_VE>X[2;/1KP<-^<H5BD/2?V_\=Z^YQP\Y3&/^#UVP^PK9[(N^0V:<
M#JT, *@UE=O!IKLGG?<<?<\4=]:]QYE]T8N</R/#?2$VSL!A./-/&,Z,^5+W
MAFWV):_8OF]'&KL0_2!?&F?@,&$Z3)@.$Z;/F3"-Q7_W(G;VX#>QP^5[+_J_
M(*^,,W,8F1U&9H>1V6%D]D\?F77?&ID]^&LC#ZS4KP+KX#/P.-)]?-YW2(Y[
M/[8JE%WQ3\KX2W^E#[^[:N^V/UM[&WZLU2T/OWG[25HD;R=RM<36D^D+=!$V
M_(PL7'A3\4^W%L9[4_#'3*&PMK0 SY?&^.:"#FA_S'?Z/U!+ P04    " ")
M@EM:./C0)W\S  ""L   &0   'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6S-
M?6ESVU:VX%]!^2UM5U&R)"=.XBQ5LN+T\TP6EQ5WIFIJ/H#$)8D8!-A8)+-_
M_3O[/1< :<7I5SU?;)$$[G+NV;?[S7W3ON^V(?39AUU5=]\^VO;]_L73I]UJ
M&W9Y=][L0PV_K)MVE_?PL=T\[?9MR MZ:5<]O;JX>/YTEY?UH^^^H>_>M-]]
MTPQ]5=;A39MUPVZ7MX>7H6KNOWUT^4B_>%MNMCU^\?2[;_;Y)MR&_MW^30N?
MGMHH1;D+=5<V==:&];>/KB]?O+QZCB_0$W\KPWWG_LYP*\NF>8\?7A??/KK
M%84JK'H<(H?_[L)-J"H<"=;Q=QGTD<V)+_J_=?0?:/.PF67>A9NF^JTL^NVW
MC[Y\E!5AG0]5_[:Y_Z\@&_H<QULU54?_9O?R[,6C;#5T?;.3EV$%N[+F__,/
M HB'O' E+US1NGDB6N7W>9]_]TW;W&<M/@VCX1^T57H;%E?6>"JW?0N_EO!>
M_]W+O"N[K%EG;]K0A;K/&59UD=WR.>%OM^6F+M?E*J_[['JU:H:Z+^M-]J:I
MRE49NNRQ_O7DFZ<]+ J'?KJ2!;SD!5P=6<#E5?934_?;+GM5%Z%(!W@*N[$M
M7>F67EZ='/'[L#K/GETNLJN+J\].C/?,0/2,QGMV9+RY'?_?ZV77MX!2_V]N
MQSS>9_/C(9V]Z/;Y*GS[:(] ;^_"H^_^\]\NGU]\?6*UG]EJ/SLU^HD#?=.6
M]:K<5X%^OFGJ#G93T.]SF_@?F";[=1N #E?-;I_7!P3HRGX.1;8NZQQ>S:NL
M@_$"T'[?9=O\+F3+$.H,@+7/6WBNK&F0MH"G ]!+O\TVH0YM7E4'_"7L<;0\
M'ML^+@G>[6$1[^H2G[G%>6B=U[O0 H)GC__SW[Z\NKKX^J_7UV_HS\NOG]"V
M\*U\OX?SSY=5R-H!1\,?VK 9*MH>#83/W8;5T)9]*4^\^K#:YO4F #!VN[(C
MAJ;SW+ZZ2::!A59#$7@ZWH' L0@?RFZ1O:X!N^E)^.%^V\">SYK[&C;3#<NN
M+,J\A7G/"=0?A^X_;;KKJH+!^M#*X0*KK/!X& ) *G67KQA(\41#50)+H]7!
MN:P\JIR?((7/C10^/XFC[[J >WG5]>4.SWD.R__8" 15QD-&:/BQ&=H' 1H?
M0BE:]@?&640QP)Z_#R604#9T6=\ 9W\?LJ#3+;+?AV+# R 8\PZ$YYZAV&_S
M'AX'A%^O0<+1"<+"FI9P?V<G">^$'D:JRGQ95H24BPPG[0\+>.$NU(,<4O@
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
M2538O< 8!0,='6Z&DL*2"W&$P(&)?_ >5:<@:K[8:\+X3JV !+;"<=[LAE,
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
MK/C(YUN,@>#R*SC;91?ZF"8+C*,9.D:&4VK^I>MR=WE2(;[).[9!Z(]7 #O
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
M7QU3Q6)H>IS5<WR!E")C>;JL+<)7,!WP3(#HRE5I\5T4KJB6+A7R;2P^SH#
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
M6_)P<E8+54NH:\!WN4@N;%MX)B\Z\=R!2&*7^@BK@_@KJ0L]>3'5E:V"8T;
MS@WLBPT8SX0.CE69FM"<M *DG<1UC&BE\86!DUNUAUH8.A<O>)V!+PZ1)#XQ
M]HT)TN*<?7A+=_)@YY-W? %?;*US??O.==:YNKCXZNSB^2)+-)O'OS;[<I5]
M\=G%D^PU=MDFDX- ]E>YRA#1Y#K5<-ZEBT]&I$:#98<M;A$#KV' (JJD/S?U
M?EA6,.4KS&M'NT_%U@K;Z*U+:2 QTJE.@6MBC00J@4 I:$FT<[59DKE.ET@!
MMN^EYVWBQB,!I)%J=36IT%P>4GV"Y0"'ET@OM'3Z0/VAB,^P7ZU[.*NPZ568
M=(!P7%. B(W%9[XD V1K4PU1J(OVN-\'S" @E;/7NQ#$]4M-JJGNDD'283)>
MD<#$6H>@,U<*314^>M>2Y*9HYII7Y'23M+O/+_Y#=]NXVX980)+H,L$'1-Q7
M<F7BZYYS5E&?IE0NY#'E"A4);GMKC57\@MD'QUQIP4N<7FZ;]DL8]2[!MKO8
MCL1J;H#'(O9)-;]J$#N,K6A9U_VH\MKQ337P/69)]X@(R\Z7'VJPQ^XO3,)X
MDM)%AB%JG]S[*.;"*V>.J\8C!EK-W@;*RKI>$;)>?O7E<P:D!*>(4#SCH="8
M=QA0KX'H+?*I$S__\J/C/>26A,FX11-F'X@R"]O7= 6RD[0&U!<7>FU1%$MB
MT/>@VF#77NFN3P0!%/E:^Y'&!LQ@Q]]*.N.S+Z]&FLX]=6% F>!R5QAKYF9;
M2/57TF)B'0K+KV.PX?[37:]4[DB$\:25&S/MKTYGQCO&_*9MZF807]R\R?N)
M8U&J )%<7C1[8B?QT7WZZ&LL5K]C=8PU, 2UR]&<$UTO&^S*H;CSP_7M2\N[
MD3Y2)R6>INO<OK/7?F[.:?JSBR\6</BD'\$V]*H:$7M77UX\>8%RKVWN])Z!
M1AXCOJUO1H'694Q >91KHC^@N.5<^)X]WUBVS$-+]PY)Z.<ABR@C$\>-RTF5
M7/I0;W-*5"_<*EC52V[GDX'5=!->+M!"WAD]96SG8MA4?/7+L"EK;@Q/G51,
MI;[\W#?5)@];N3-52!K!_:&A,(6;.N1P/E"A;?SXMA5UGMJZA3B7TC*.DO;Z
MMHEMO<E#4572?V72F=W,G*,:@-8&*'+C03K\\6Y0\IL<B6N<BITLX'2 *32
MK0@%05C!KD7VU]!LVGR_M;P_+A)6#O8Z#G2N3/4:I8[O(M<JC0K%'"=1(V)R
M/6A]&K5(IN\TM#O_'-6QR>W>VKVWUXX !UG&B=DQ < UECGZW .A'JT6S%HP
M<N!,&"O_27^AK.#SR-4^"K$Q1$9,[C-A<L"WC%]%'/KL[.*9:=VWBGMGD1DA
M_K5ABTGC=T$>/)/^W,AY]&X2I!+/B![?#LN>^=C5Q=EGR,I&3P-(QO-:X^\1
M&_-<C!1-U3H<0B?\IR9^-)I-Y7J\Z,,<29$@K;_HRL(.HL\;9>+B@&'I;>I3
MYM4[NOW#S.SY>?8J93Y\E[#RG]\XOS$6#8QZZ+C;LWK/JAJ[%3+ZQ^?8CA1R
ML6;N@$J:R4^4D?X0K+I:H&X3$X42.7;F+2\2:CND[[?!_(%B-E-NU!X>NHWK
M.RGB\-LN+FU&,J?+>NP2UJ]O;TQ$DS=XQ]+1+TKU[94N; 0XS5O*Z<D@F:9(
M!VZ=-X)!N.()\H@%&LLY)!Y%W395@/QY,?9Z'>NW^0$Q;1.XYO5(JB[0*J3[
MC>D=?&7G"]]M75I['%$_2V^1E4]^\'\Q<AL06:4X@ML@=;\Z[J>8*FSQR0<K
M:F93C5!AH84YC S2J<JE[GD>B!+'"F)@OQO.695I6O;<(AJ#P2!J@.LVYQ1
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
M:Q+ ]QNE[.Z!+AC_.RS_ U!+ P04    " ")@EM:V*^KX'(#  !/!P  &0
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
MDP^5-2!]*J79"G:!]A&Y^!=02P,$%     @ B8);6E0H0)K*!0  Y@X  !D
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
MN' N\H\K'$1)NP7XOU#*;E^<@NYH._L74$L#!!0    ( (F"6UH";&@MBP@
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
M!A? _+2NS?H!&71?(L__!U!+ P04    " ")@EM:(Z2A[P@'   !%   &0
M 'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6RM6&UOXS82_BN$>U@X '<M4>_>
M)$!>MFB!;3=(TAX.A_M 2W0LK"2Z))67_OI[2,F*'3M*#K= (E,2.?/,S#/#
MH8X?I/JN5T(8\EA7C3Z9K(Q9SV<SG:]$S?4GN18-WBREJKG!K;J;Z;42O'"+
MZFK&/"^>U;QL)J?'[MF5.CV6K:G*1EPIHMNZYNKI7%3RX63B3S8/KLN[E;$/
M9J?':WXG;H3Y8WVE<#<;I!1E+1I=RH8HL3R9G/GS\\S.=Q/^+,6#WAH3:\E"
MRN_VYM?B9.)90*(2N;$2.'[NQ86H*BL(,/[J94X&E7;A]G@C_6=G.VQ9<"TN
M9/7/LC"KDTDZ(858\K8RU_+A%]';$UEYN:RTNY*'?JXW(7FKC:S[Q4!0ETWW
MRQ][/[QG >L7,(>[4^107G+#3X^5?"#*SH8T.W"FNM4 5S8V*#=&X6V)=>;T
MUR:7M2"W_%%H,KWEBTKHH^.9@6@[89;W8LX[,>P5,3XCO\G&K#3YTA2BV!4P
M Z8!&-L .V>C$B]%_HD$/B7,8^&(O& P-'#R@C<-)9>ESBNI6R7(O\\6VBA0
MXS^';.XDAH<EVG29ZS7/Q<D$^:"%NA>3TP\_^;'W>01O.. -QZ2?WB#]BK82
M1"[)5ZDU.1=(04&V T;))<;:E#GA34% 4Y"P.63)N*YOK2*5U;'H=*R5O"]=
MVN&6E)U&XRCR(/">:[RHD,^@3-D0LY*M!@!]-"?_$EQU'""(H*@70@U1M)?
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
ME^$XLUC)LF0&638:B,A@)85A8D-%RJB&TR]DS:D>7HP,SF5'C-(&]ZK&#9_
M#4+XB%"%AE]%1K.' "-TLO4TW'MZ%1Y%?$O3<X@"#T(_C(_@16WDD<.+?BKR
MMTRG7.I*4?A[N=9&8?K\TT=#/4G</XF5U%QO24HO!Z@93=4M'2Q>OPH2_\V1
M$.(VA/@8^N(&)9I5G(+,P<GI3.9GE::PU)HV87V@F+/P:<W9AE@=Z+X@CD[3
M'\27@H)QV0%K*VW0!3X,]JX))R)U3JFN4^3>*>Z<DO=.X4]K_SL1%6X-T*RR
ML^U"UE:8";1<4]5F@P=,I+S*</F<>5H07$@-6:7V75NJF,S@E G\E)5&9#V<
M][)V!I_0FMADJ-GS0.#N>-T32]?4Q:2=K0?$',1R D'D!=$$EJ54AOWG G^*
MI%,TG<9#6&89<W99A73+AKA29BQG:8T03+U)//EA]PY(1 =#A/+]PY0YI$0W
M1O()HQ>0D7BV4<-LR5TMQ-/8FX23(;P7AF*J&=RU4T5=G+,X^0$Z?LR]/C(B
MWYO-?#@BTW$KT_&+95K[M9+:].GP.$X]-L6QJ)=25I:P.O%IA@TH\3]N6)9)
M.U6/R%!.$M6@T+JNYW5IY<0@ O(II#A+K=(XM](&^8@QAY SX<38=.UPH:PP
M<\EQ&] '$ON+$E47@1Z:\1'91PCONJA-D"?P^M4T#,(W#UK!]/%*.G.(45T^
M)%X4^##QHC" FP*5=H:95#Z /0V&+=S^'?OP11K"NX"GX1"GJV%/&N 3"SV9
M.8PGX)'2/37,%&#_NVU+WF+D4MA\Q<+8[(-:(UE$N/X[9.K<S6HW5ZQ/6R+N
MH" 9K@O<$L7<FG2F.K=[R4$:V.WNV53XR55:$5V@6EDV[ZQ!:CMSM_BYDN5A
MUE@24=;XGGG3V<21.?:3QYL*?'J<FW/XZHY5-#LCR!Z>$C%;[5'S?ND=_38:
MRYX>PN0\.1R4836W1 %.1]'$AU^.Z#II=9V\6->/0_E(#!8?<]>G\J.H_=5V
M^53ADY7"XV ]%Z84X7>:.5LB<,?E4(E][+BRG85""YLGSPO^>7%KH,*5W@?N
M'10,]'?L,F&:3.U' F//#UQR3;#7'[L4FV)OC#4(FS-L1LG8B@&O&SDN- 1C
M+YF-&Z7B:9B5U5Y[;0F)?2]"FP\HK3FP<EL9)XNFGLP0?=Q3'=K]_IJF$H^
MG+7U^1$G@+_6^-_88R)28\\]PDF]T1Z.UY*SS&VJ^Y.+.Z&C0ZM**2O*K3T#
MU/B'XCPL5;8X>U,DZH,4F^Z6\\PPK.A!$C6$'0OD:+T;=>X7)54;=XO2X-*J
MOFJTO>U%;5G?3^[-ZUO>1Z(V#'WE-,>A_OD$2YZJ;T[UAY%;=UM92X-W']<L
M\+))E37 _[F49O]A)VBOKXO_ 5!+ P04    " ")@EM:Y-+$\W4#  "A"
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
MC3U2P)INN5G(_2=H_3B!N>3:7<F^K0T\DF^UD54+1@45$\V=/K0Y' #"Y!E
MU *BUP+B%A [HXTR9VM.#<U2)?=$V6IDLP.7C4.C&R;L6[PS"G<9XDRV@!V(
M+9 %Y'(CF(OV/9E)810FK%&-*<G,Z0!%SN=@*./Z FN6=W-R?G9!S@@3Y&LI
MMYJ*0J>^0566V\];!3>-@N@9!7/(+TD<OB-1$"4]\-GKX?%3N(]9=(%$72"1
MXXO_$<A:R:K+X2B&']<K[=9_]MEM^)-^?GLJ)[JF.4P]/'8:U Z\[.V;<!A\
MZ#/_G\B>1!%W4<0OL6>=>ZHUF-Y7VQ",'(%M&+LLB4>#U-\=>C@M&H=_:YY(
M2SIIR8O2EF+%.(<"&TD.;$=7''KU-2S#@T?'43 ^TG=:='45)/T"!YW P>NR
MXXRB5#Q8H">VOX!23K;[ROHD#TXC'01'BD]KPF T#(\D^P=MP;;D+U1MF-"$
MPQIQP>4(:533YIJ)D;7K%"MI\$-WPQ+_#*!L >ZOI32/$]M\NG]-]@=02P,$
M%     @ B8);6B1&IM[1 P  9A4  !D   !X;"]W;W)K<VAE971S+W-H965T
M-#DN>&ULM9A=;]LV%(;_"J$50PNTT8<_$J>V@"1<L0#-$"3->E'T@I:.):*2
MZ)&TG0#[\2,I6;8RA8T+.A>Q2/$\Y'G)0Y%GNF'\A\@!)'HLBTK,O%S*Y;GO
MBR2'DH@3MH1*O5DP7A*IBCSSQ9(#28U16?A1$(S]DM#*BZ>F[I;'4[:2!:W@
MEB.Q*DO"GRZA8)N9%WK;BCN:Y5)7^/%T23*X!_FPO.6JY+>4E)90"<HJQ&$Q
M\R["<QR.M8%I\3>%C=A[1MJ5.6,_=.$ZG7F!'A$4D$B-(.IG#5=0%)JDQO%/
M _7:/K7A_O.6_LDXKYR9$P%7K/A*4YG/O#,/I; @JT+>L<V?T#@TTKR$%<+\
M1YNZ[2CR4+(2DI6-L1I!2:OZESPV0NP9*$?[#:+&('IN,'S!8- 8#%YK,&P,
MAD:9VA6C R:2Q%/.-HCKUHJF'XR8QEJY3RL][_>2J[=4V<GX#M90K0#=0<*R
MBIJY^(#^(IP3/2'H+09):"'>J=J'>XS>OGDW]:7J6)O[2=/)9=U)]$(G881N
M6"5S@?ZH4DB[ %^-N!UVM!WV960E8DA.T"!\CZ(@&O8,Z.KUYH,><_QZ\\CB
MS:"=A('A#5[B44&RC$-&C/YL@;;3\NVS:HJN)93B>Y_N-7?8S]5[QKE8D@1F
MGMH4!/ U>/'OOX7CX&.?9BYAV!&LH^>PU7-HH\?7Y9)0KG8GB9*<\ R$VJ(*
M(B%%DJ%$+46N]AM$A  I^F2M\:<&KW?.=1Q,_?6^5C]M@6TM.EZ-6J]&5J_N
M<\;EAR_ 2_10S6E1*'=4V )=DWD!O7Y8@8<N#Y<P[ C6$7+<"CD^4KB-7>KI
M$H8=P3IZGK9ZGEH79KL:^6XUOD<5DTC7ZV*?EC5SO!<?T5F@_YY%VO_;3<*>
M=M@ZQE]4X*Q5X,RJP&=698=%II5WZ$IR"<..8!T=)ZV.DR-%YL2EGBYAV!&L
MHV<8[(YWP1%BLX'N?[Q&?;'9TZXOAK%]D+\JPMX9-[2*<$,K6JY*]"^Z2!*V
MJJ38"\]>_ZV\0Y>34QIV1>MJ&>VTC(X4H@W8E:@N:=@5K2OJ[OP?6H_#\2UY
M,J=5J3XAO9^+G]@/ I22IS[+*[OEP3H=XU@?[L[UH?U@?T,>#PQD*^_@->>2
MAEW1NEKN;A/AZ%B![/1:X92&7=&ZHNYN%J'UH/V*0+;;3RR![/2^X(I6Z^3O
M):!*4!=NG<@3R(1HG=1I:]MDX85)D3VKO]1)1)/8VF'J#.2-NL?32J "%@H9
MG)RJB>9U4J\N2+8T::XYDY*5YC$'D@+7#=3[!6-R6] =M*G5^#]02P,$%
M  @ B8);6A^NY!HM P  70D  !D   !X;"]W;W)K<VAE971S+W-H965T-3 N
M>&ULK59M;],P$/XK5D ()%A>^[+11MHZ$'R85&T#/KO)-;%P[&"[[>#7<W;2
MT&9906)?$K_</7?/G7WGV4ZJ[[H$,.2AXD+/O=*8^L+W=59"1?69K$'@SEJJ
MBAJ<JL+7M0*:.Z6*^U$0C/V*,N&E,[>V5.E,;@QG I:*Z$U54?7S"KC<S;W0
MVR_<LJ(T=L%/9S4MX [,EWJI<.9W*#FK0&@F!5&PGGN7X<5B:N6=P%<&.WTP
M)I;)2LKO=O(YGWN!=0@X9,8B4/QM80&<6R!TXT>+Z74FK>+A>(_^T7%'+BNJ
M82'Y-Y:;<NY-/9+#FFZXN96[3]#R&5F\3'+MOF37R@8>R3;:R*I51@\J)IH_
M?6CC<* 0CI]0B%J%J*^0/*$0MPJQ(]IXYFA=4T/3F9([HJPTHMF!BXW31C9,
MV"S>&86[#/5,>@M;$!L@MY#)0C 7VG>DM_H+<O+Z&@QE7+_![2]WU^3URS?D
M)6&"W)=RHZG(]<PWZ)"%];/6^%5C/'K">!B1&RE,J<D'D4-^#. CDXY.M*=S
M%9U$O(;LC,3A6Q(%43+@T.+?U>,3[L1==&.'%S^!=UG)C3 :PY3Q#3*T\<J0
ML<+32SBC*\8QY* )-<240%90,"&8*(A<NX4:%)/YQ5!H&\O)L&5[^2]T33.8
M>WB[-:@M>.FK%^$X>#\4EF<".PI2T@4I.86>+D&Y:B0R('+%64'M*=1$XU^O
M6?]<-.P;R(F#M)5JFX9!&(4S?WM(:T!J<AY/.JDC?T>=OZ.325V45!1@D_JW
M%(V>,T7/!'9$>=Q1'I],48\R:,.P@N)YQI,L-&TJ<JT89I!R+K-F3]K8G$ZM
M140]J=HP#A:1QK?Q01;C,.EE^K%,$HY'PXF>=*PG_W<PR5K)B@CL5:X;-5?Y
MZ%A@L>SNNVJ*ZA##R6/OI^=AT.,X)!4DX3#):4=R>I+DO324[WT;#/_TT24:
MG<?)J.?<8ZE)$"9QSSG_H%-5H K7P#7&",MD4^6[U>Z-<.E:8V_]"M\.3:O_
M ],\/&ZHPB*J"8<U0@9G$[PXJFGFS<3(VO7#E3387=VPQ/</*"N ^VLIS7YB
M#70OJO0W4$L#!!0    ( (F"6UI0,_?^00,  *(/   9    >&PO=V]R:W-H
M965T<R]S:&5E=#4Q+GAM;,67:V^;,!2&_XK%JJF3VH+)/4N0>MFT2IL6)>WV
M8>H'!TZ(5<#,=B[]][.!0*H&=TV;38H"QCZOWV,_UI$'*\;OQ1Q HG4<)6)H
MS:5,^[8M_#G$1)RQ%!+5,V,\)E(U>6B+E ,)LJ XLEW':=LQH8GE#;)O(^X-
MV$)&-($11V(1QX0_7$#$5D,+6YL/8QK.I?Y@>X.4A# !>9N.N&K9I4I 8T@$
M90GB,!M:Y[A_@7LZ(!OQ@\)*;+TCG<J4L7O=N Z&EJ,=002^U!)$/99P"5&D
ME92/WX6H5<ZI [??-^J?L^15,E,BX))%/VD@YT.K:Z$ 9F01R3%;?8$BH9;6
M\UDDLG^T*L8Z%O(70K*X"%8.8IKD3[(N%F(KP'5K MPBP,U\YQ-E+J^()-Z
MLQ7B>K12TR]9JEFT,D<3O2L3R54O57'2&\,2D@6@,?@L3&BV4J=H!#S;\,0'
M]'T:T9!D'<=7( F-Q <]A+-@X4NU,[G $:()NIFSA2!)( :V5.;T%+9?&+G(
MC;@U1J[ /T,-?()<QVVBV\D5.C[Z\%C&5KF5";IE@FZFVZC3I8*$(8<B!39#
MFY1_?55#T;6$6-SM\IOK-G?KZM/2%RGQ86BIXR" +\'RWK_#;>>CP76C=-TP
MJ7O;&\#*#=CE,M?I9#KZ""Z]9LL9V,L=DS?+R9O&R8L%.E$KI<\U3<(:($[0
MIW6JCA<$Z(;&>IQ:WHGJ$C/BYP,FDG")%)IJO<_75-SU]0:W3AVL?KOR,5K;
M<]5;9>*M ['2.H#K=NFZ_4:LM)^PTJACI5-.WC%.7@(@2P#$(P!2X)0%N]R8
MA3%Z ,(-R],M'7;_,\WM>IJ-UO;DHE<FWCL0S;T#N,9.59&<-^*Y$-H&&CLU
M0..MBH@/A?0SRL\RC:NJAHWEYQ]0W:FGVNQM7T"JVH@;!P(;&ZONOL:KNHK-
MA?4%9#>?D%W'=57<L+$*O8IKL_+S7%>U#)N+V>&Y[AJX-GK;%X^JE.+.H;@V
MUM)]C5<5%IM+[ NX[OXUUU69P\9Z]"JNS<KU7-M;-RY]>_U&>$@3@2*8*27G
MK*,.#,\OA'E#LC2[A$V95%>Z['6N+M' ]0#5/V-,;AKZ7E=>R[T_4$L#!!0
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
MEJ!:BFH9JDE44Y36'!8Z];"@+2%I3VS1KWIRD*-M3U2S4<U!-1?5/%3S42U
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
M#)PH6B4U!3<TP1!7T]<-8! #AY!V"=!KP9&XHKZ. #\8Z"Y[+%O.57-JWOP
M@>OHZ0.%G9SB.SF25#D17B91Q-)EX(=DXV]8JOP<B"KH_$%0DS0Q', -U!A5
MGJ4HQG0.GB9I8O!J!0B<;([G62HSB^,ZS8\^N)J^;@ $41R"VJ19JD"AIA>H
MEKY> "W1UD6$PUF68C6"RHTAP(<"^%"\YH#G6"I7$OA\FC==& (_*. 'Q?'C
M6(I--TGJYXRLV*UZT6BBCBH80S ,!8:A[K@2K";6J8(W!#E1(">*DU.+!"MC
MD^$:7I, <3U]_0!PHC@XM<JP,CY)^\00Z&0".IDX.K7*L*9<X) Y%E?4UQ&
M'A,OEN YUI1K(,64:NX3N(Z^/@![F#A[X$GVYNSZC/CW+%[^(%F10<I,H_16
MZ[&&+FEB4&H'&^:HDJVI"7FJX T!4"8 E(D#U/%D:\KT9,R])GW@:OJZ 0!E
MMCZT.9AK31FCFJ4/7$M?+X"A3)RAVN5:N8HC9:DAZ,<$^C'Q"LZ13"O7;HSY
MO/FY E?1UP5@$+/O$=(^T>9IF52.IEJM)TFZI(EA :0QQW689&H]3=(E33SN
M!I*R3CU.LF2,HAY/MLTC[R% R@*0LDX_=;)DG+*;Y]&XFKYN $M9&DZHK.,G
M5+B:OFX _5BG'&99<@6'>M1NEF=Q'7U]J-T$P2&DO.14I(CF;2>E2UI/O'1)
M$ST';K'&=>)E:3WQTB5-#![@DH7CTJ$K399,2(H[38I6R*4F@!^KYX482\4]
MU)',ZG0EQ@*BL7"B.;C&.,_HN#"#J^\\LX;@' LXQQH7YUA:.4>7-/'Z''".
MW?:P37ESKMV5&44SY'J%#?!BX_#2;QDHKU[@FKH.FBYI8ER ANQQW:NUM5:@
M=$D3@P<,9I_"8+;,8-)L'X*_;. ONR=_X8NBY=$YKKSS4 \!;';M<O"X@,W6
M"FRZI(G! V"SVYX1*ET]7MC"Y?>U']C.QMGNE'5R[/P35]UYH(<HG]D F[8W
MKE6B%3YU21.#!_!IGW+ARI9/#*55,@3_.<!_#LY__5=)^P,LW(2N ZY+FA@P
M8%)G7->Q'*W@JDN:&#P 5Z?MD:C2U>/U.UQ^7_N!'9WCSV6=L%I:GD+@1G0>
M\B%PU0%<=:QQK1>M *M+FA@\ %CGE*MF#O;06F7_$ SIU)Z!PQER]^AKWGCT
M5>F+UAMENJ2);@-Z.N.Z4>9HQ5%=TL3@ 8XZQVN?2B?E>V32;,>:B.8 X#DX
MX!U^CK/=97I%LP,VN0!M+@YMZF6EJ3:,Z^XZF71)$R,%M.:.B]9<K;2F2YH8
M/* U]Q1:<X_36M7$;3'W <%<',%ZS'UE01A7TWFDAH L%R#+'1=DN5HA2Y<T
M,7@ 6>XID.7*D*5*\[B.OCX :+E]0$M+11C7W'FLAR SM_8%".,B,U<KF>F2
M)@8/R,QM>\].Z:H,7XH'7W 5?5T FG-QFNN]3HY5A'&]G0=ZB**@!WSIS4:U
M2CRMR*E+FA@\0$[OE$<7O':/+N Z^OH Y.?AY-=SF;0O">/Z.X_X$%5!#Y#4
M&]<S#9Y6=-4E30P>H*N''V<?62ZJYQFD^^>XBKXN $!Z.$">LEI:EH1Q"SH/
M^1"PZ@&L>LZXUHM6@M4E30P>$*QWRO,:5>?Z)V[5%6)<1U<?IK5O5RR^VO*#
MG]X'<49"=L?%S\Z*ST;I[MLB=R_R9%-^X>)MDN=)5/ZY9OZ*I44#_O^[),F?
M7A3?X;C_SL[%_U!+ P04    " ")@EM:-"Q9J)\"  "6!@  &0   'AL+W=O
M<FMS:&5E=',O<VAE970U-RYX;6RM55%/VS 0_BM6-DT@ 4G3%B;61J+M$$C
M$ CV,.W!3:Z-A6-G]J5E_WYG)\T**F$/>VGLRWW???>YOHS6VCS9' #9<R&5
M'0<Y8GD:AC;-H>#V2)>@Z,U"FX(C;<TRM*4!GGE0(<,XBH[#@@L5)",?NS7)
M2%<HA8);PVQ5%-S\GH#4ZW'0"S:!.[',T07"9%3R)=P#/I2WAG9ARY*) I05
M6C$#BW%PUCN=#EV^3W@4L+9;:^8ZF6O]Y#:7V3B(G""0D*)CX/18P12D=$0D
MXU?#&;0E'7![O6$_][U3+W-N8:KE=Y%A/@X^!RR#!:\DWNGU!33]>(&IEM;_
MLG63&P4LK2SJH@&3@D*H^LF?&Q^V +WC-P!Q XA? P9O /H-H.\;K97YMF8<
M>3(R>LV,RR8VM_#>>#1U(Y0[Q7LT]%80#I-S+@Q[Y+("=@W<5@;HB-"R0W;#
MC>'.8[8W ^1"VGV*3K5:@4$QE\!F,$<*/=S/V-['_5&(I,>QAFE3>U+7CM^H
MW8O9M5:86_9599"]) BID;:;>-/-).YDG$%ZQ/J] Q9'\6"'H.F_P_L=<OJM
MN7W/UW_7W -V9BV0KUQE[$KPN9 "!=B-Z1FCO_0=I)4Q0BU]UHU6I@U,N!66
M_;BB NP2H; _=]E=JQGL5N/FP:DM>0KC@"Z\!;."(/GTH7<<?=EEU7\B>V'<
MH#5NT,6>3,D1@4QJ,LWNZK2&GWBX&U2K)!J%JVWY71DO- U;3<-.3=\P!W.(
M.5>'= "E-C3TF"A*.F-W93K$#M\5VY51BPVWKG@!9NDGGV6IKA36]Z.-ML/U
MS,^45_$)#=UZ1OZEJ2?V-3=+H2R3L"#*Z.B$5)EZ"M8;U*4?)'.--);\,J</
M!QB70.\76N-FXPJTGZ+D#U!+ P04    " ")@EM:;G\ NH4"  #K!@  &0
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
MT+K*6M]P4LHRXB/AG.3R,@$< ZTZB-]WA/"7FVJ MM:]^@]02P,$%     @
MB8);6ND;X<!M!0  F2,  !D   !X;"]W;W)K<VAE971S+W-H965T-C N>&UL
MO5I=;]LV%/TKA%8,+9#&(O5A*[,--&&'#4BW(&FWAV$/M$3;0B71I2B[^?>C
M9$6R))J-,\8OMB3?>WC/)2]U2'.Z8_QKOJ94@.]IDN4S:RW$YFHTRL,U34E^
MR38TD[\L&4^)D+=\-<HWG)*H<DJ3$;)M?Y22.+/FT^K9'9]/62&2.*-W'.1%
MFA+^>$T3MIM9T'IZ<!^OUJ)\,)I/-V1%'ZCXLKGC\F[4H$1Q2K,\9AG@=#FS
M/L KC(+2H;+X*Z:[_. :E%06C'TM;WZ/9I9=1D03&HH2@LBO+;VA25(BR3B^
MU:!6TV;I>'C]A/YK15Z269"<WK#D[S@2ZYDUL4!$EZ1(Q#W;_49K0EZ)%[(D
MKS[!KK:U+1 6N6!I[2PC2.-L_TV^UXDX<(#^$0=4.Z"^@WO$P:D=G.<ZN+6#
M6V5F3Z7* R:"S*><[0 OK25:>5$EL_*6]..L[/<'P>6OL?03\VN2D"RDX*$:
M9)@*$B<Y> _NN!Q:7#P"DD7@X[<BWLC.%A<@DU9O:[-WTN[+ P9OW[P#;T"<
M@<]K5N32(9^.A(RM;&$4UG%<[^- 1^* "'QBF5CGX&,6T:@+,)*D&F;HB=DU
MTB)B&EX"!UX 9"-7$=#-\]T=A3M^OCO2L'&:?G(J/.<(WE-_7( [V6&BWRU_
M4/FQ> 2?'S<4_/-AD0LN*^I?53_LVW'5[933S%6^(2&=67(>R2G?4FO^\T_0
MMW]1Y= D&#8$ULFOV^37U:'/U>-=E;\]SKC"*6?5[=SSH"/[>'N8&(65.PXF
M72NLC>F%C+V&L:=E?$OS_$K.NV&1%@D1-)+3I6PFC$DY(:N8[_'\ T[O73MP
MO!YUA9D3.!#VN&NC>R%WO^'N/[^W:6=V4Q'W!XR@"X-QC[?"RG,G/2NL#>R%
MM,<-[;&6-OY!!X\'#-R)V^_>H9$<__V!/58,?[NMD4[TDR;ZB3;Z>YD/PL-U
MU6D1W4K-<K1(M4BG3G(FP; AL$X&@R:#P9E>(H')_)H$PX; .OF%=JNF[/]5
M8;7[8?4X@>_V2DQAY7I!SPHKK3Q?763P0!!"+84'J<'C;'4!5C2CG"35*"&1
MU)YQ.2!*F:YDID4]=4@81<.FT+H916U&T9G*KF[(5))-HF%3:-TDM_H8:N7A
MCRO/&53+9 +[A3<T"M"@[IS!RVWB'BN[5G]"O0"])0LFJXOQQU:0*'D8THPU
M89-HV!1:-X6MH(7>N>K,D#BMDVP2#9M"ZR:Y5<[P!.FL72C!H2!VY%LLZ-><
MPFR,H-^ONM<0SK!5SE OG1NF@%,1\W*U5'#YF@0R&3&+E/R'2AGYMMVG/[1R
M[+X5UD?W4O:M\H9ZZ7U+24[7+(E G&XXV](R$^I='J/*VR@:-H7636(KON&Y
MU#<T*K^-HF%3:-T]OU: ([T ?_[TA(;R&2+H]:<GE1D,8&^_!^O#>BGM5K0C
MO6B_8>FF$)3KM8,>Y-1Q8Q0-FT+K)K#5Z.A<&AT9U>A&T; IM&Z26XV.]!K]
MA.(<"G'D#FM38>7Y7K\T7V-?&;7"'NF%_9_+91Q2L"QX%HN"T^Z>HY*\48EO
M% V;0NLFLY7XZ%P2'QF5^$;1L"FT;I);B8],27RDV/.&_07SC<K*]8-^F;Z&
MP$>MP$=Z@7_#,CE:BOV_T7$&I,Q=R7:4(E</=?+8,8F&3:%UT]BN%-#D7 5J
M="5A% V;0NLFN5U)(*V(/J5 @\%>E>.Z_6TOA17TG?X*7!_4J:1'!V<64LI7
MU=F/'(2LR,3^3_[F:7.^Y$-UJJ+W_!I>X?TID19F?VCE$^&K.,M!0I<2TKX<
MRVF5[\^![&\$VU0G(Q9,")96EVM*(LI+ _G[DC'Q=%,VT)S&F?\'4$L#!!0
M   ( (F"6UJOZB]OEP(  /L&   9    >&PO=V]R:W-H965T<R]S:&5E=#8Q
M+GAM;*U574_;,!3]*U:&)I &^21%K(U$VWWP@(3HV!ZF/;CQ;6/AV)GM-.S?
MSW;24"#M>-A+_'7/\3DW]O6X$?)!%0 :/9:,JXE7:%U=^K[*"RBQ.A,5<+.R
M$K+$V@SEVE>5!$P<J&1^% 2I7V+*O6SLYFYE-A:U9I3#K42J+DLL_TR!B6;B
MA=YVXHZN"VTG_&Q<X34L0-]7M]*,_)Z%T!*XHH(C":N)=Q5>SE(;[P*^4VC4
M3A]9)TLA'NS@FDR\P H"!KFV#-@T&Y@!8Y;(R/C=<7K]EA:XV]^R?W;>C9<E
M5C 3[ <ENIAX%QXBL,(UTW>B^0J=GW/+EPNFW!<U76S@H;Q66I0=V"@H*6];
M_-CE80<0IGL 40>(7@*2/8"X \3.:*O,V9ICC;.Q% V2-MJPV8[+C4,;-Y3;
MO[C0TJQ2@]/9%#/,<T +=V3FH#%E"IVBA3DNI&: Q I]$8(TE#%TW*V?F(#[
MQ1P='YV@(T0Y^E:(6F%.U-C71I2E]O-.P+05$.T1$$;H1G!=*/2)$R#/"7SC
MIK<4;2U-HX.,<\C/4!Q^0%$0)0."9F^'QP?DQ'V&8\<7[^'KL_?S3IBO.7P-
MEN374*9:HF28R-[G2U7A'":>N; *Y :\[/V[, T^#KG\3V3//">]Y^00^Y-G
MK-$2UI1SRM?V*%4@J2!#WEO"D2.TI6>314EJ\K_9]?0Z*(Z2L ]ZIO6\UWI^
M4.MU66$J36'20[):;+JS8_!"T^N(T]'H8EA3VFM*WYP_X.1PYM*W9.X?0:U*
M?Z>.E"#7KKPJE(N:Z_;^];-]!;]RA>O%_-14]K80/]&TS\(-EN8X*,1@92B#
MLY%)GVQ+;3O0HG+5:BFTJ7VN6YC7":0-,.LK(?1V8#?HW[OL+U!+ P04
M" ")@EM:.E M7*8"   ?!P  &0   'AL+W=O<FMS:&5E=',O<VAE970V,BYX
M;6RM55UOFS 4_2L6JZ96VLIG:-<E2&VBJ9,VK6K:[6':@P.78-5@9IND^_>[
M-H3E@U9YV O8<,_AW'.YU^.UD$^J -#DN>25FCB%UO65ZZJT@)*J<U%#A6]R
M(4NJ<2N7KJHET,R"2NX&GA>[)665DXSMLSN9C$6C.:O@3A+5E"65?VZ B_7$
M\9W-@WNV++1YX";CFBYA#OJQOI.X<WN6C)50*28J(B&?.-?^U30V\3;@.X.U
MVEH3D\E"B">S^9Q-',\( @ZI-@P4;RN8 N>&"&7\[CB=_I,&N+W>L'^RN6,N
M"ZI@*O@/ENEBXEPZ)(.<-ES?B_4M=/F,#%\JN+)7LNYB/8>DC=*B[,"HH&15
M>Z?/G0]; #]Z 1!T@.!80-@!0IMHJ\RF-:.:)F,IUD2::&0S"^N-16,VK#)5
MG&N);QGB=')#.:U2('/[R\Q 4\85>4^^Z0(DN4Y3V4!&OC"Z8)QI!HJ<=D%G
M&/4XGY'3DS-R0EA%'@K1*%IE:NQJ5&;XW;13<=.J"%Y0,8/TG(3^.Q)X030
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
M+?O]4=\_GN5=T;>K4[N?EODR2T\_PXN6<U'-:S7<NK.QRR30<7U4DZBF4"U
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
M725U8:=IU8X,FBU9>[T?2,S3$4/=U5(7!B>+>9>8)@Q-7/<$L]J-0;,=TUN
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
M58A*[5.2 PML:MYL9P3SH@D'3"+]UC$]BM8^(#L)CBX<J;FH>A(!2X"0'8J
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
MWA9*4)K(8LYLM;::('Z;3XL^6>_:UUXQS;O&%+/.'PC?A(E $5TKI'4U5CO
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
MH5W@C%C16,_-632F:Y%G!.8,\7518/9W"CG=3BS7VDW<9\N54!-V-"[Q$AY
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
MQMD)<&VMHNF+JC:5M\J&%GH:[R57;ZGRDXN;(F4Y 0_XF0@P 4N6EZP@A12
M;<&*; GG9*-?@\]"$/48%QOPC>(US:BDRN?#BDA,,_%1>3_>K\"'=Q_!.T +
M\+!G!Z&LQ<R5"E0/YZ8-U)<:"@U K4AZ!7SX*T >"BSNR[>[^Y?NKBI/6R/4
MU@A5\?S!>$T9I"H#KLIP;4NJCA+8H^A^O!8E3LG<40TG"#\29_'^%QAYGVPI
M_J1@%PG[;<+^6/3%GVKY4 L%QY(6.Y QE;)U%NLH<15%KQ?'18*F*)RYQ_-,
M3*L8A4G46ET@!BUB,(JX5/-!I96J=HS.QH-Q%'D]*HM5%$!DIPI;JG"4JOU2
M.#F2XF"O6FB,'"0].--$I6!'BUJT:!3M7K+T::)7O U0+:]D0&"]D-H((Y,P
M/INPFM%B% 2A'3)N(>-1R+OZ4ZY7&9RF_( S:PUC8W 4A?TIMAC%<6 G3%K"
M9)3PENO&D"\5X6\_#K14FB9MB(DQ>N+W"4V;((SM@-,6<#H*>%-(7.SH.B/-
M4F5CFYJ5"8(>FVD3^@/M ;U.;;SQML4EE3@;65.: )<U03TVFQ$:F%EX)H5P
M_.M[C_/RTPHTD/2?P09I ET4, EBV,>TF$4)@@.@G1[!T=5_\5BH'9OB4ZV\
M4SLU5U?3BHG,\?N(IHDW@->I!QR7CV]$K3(@:S8)+U8RWQ@V/E\]&CC3RH^\
M9("ODPXXKAU_R3WA(]T!36T(_,BHG&F%PF"H0SH%@>,2\L!T?VS>N.6 %J4(
MIDEL5-)BYWMQ/+#8P$Y5X+BL?,?9 =<;\DP="7"1$BNGJ183&*#IM+_J6 U1
MG/@#R@([:8'QVW=Q6;>#M==U5*?^[U[N9T6[S+R3+#BN6=79;,*VDX,8$P5H
MJM$D2J;&IV0Q0]-PJ"L[W8+CPF7Y\/]SEDR-LA);S(:)42=F:%S,]#9YB-=Z
M/O",G;!J@AZLU:B_]W//#GSZM/T'YCM:")"1K?+RKF+5[KP^P-8WDI75&7#-
MI#I15I=[=>@G7!NH]UO&Y.N-/E:V_T98_ M02P,$%     @ B8);6MREYB4C
M P  ; D  !D   !X;"]W;W)K<VAE971S+W-H965T-S0N>&ULK59M;],P$/XK
M5I@0DV!IDS2%T5;:%A#[,#3M!3X@/KC)I;'FV,5VVL*OY^RTH2]I5XE]:6WG
MN<?WW-EW'LRE>M(%@"&+D@L]] ICIN>^K],"2JK/Y!0$?LFE*JG!J9KX>JJ
M9LZHY'[0Z<1^29GP1@.W=JM& UD9S@3<*J*KLJ3J]R5P.1]Z76^U<,<FA;$+
M_F@PI1.X!_,XO54X\QN6C)4@-)."*,B'WD7W/.E;O -\8S#7:V-BE8RE?+*3
MZVSH=:Q#P"$UEH'BWPRN@'-+A&[\6G)ZS9;6<'V\8O_LM*.6,=5P)?EWEIEB
MZ+WW2 8YK;BYD_,OL-33LWRIY-K]DGF-C4./I)4VLEP:HP<E$_4_72SCL&;0
MC?<8!$N#8-L@VF,0+@W"8PVBI4'D(E-+<7%(J*&C@9)SHBP:V>S !=-9HWPF
M;-KOC<*O#.W,Z%JDL@3R0!>@R3ORE2I%;2;(FP0,95R?XNKC?4+>G)R2$\($
M>2ADI:G(], WZ("E\=/E9I?U9L&>S;H!N9'"%)I\$AEDFP0^>MZX'ZS<OPP.
M,B:0GI&P^Y8$G2!J<>CJ>/.PQ3PYWCPXH"9LDA$ZOO#99)"$Z91+72D@/R[&
MVBB\(#_;(EXS1NV,MFB<ZRE-8>AA5="@9N"-7K_JQIV/;=%Z2;+DA<@V(ADU
MD8P.L=M(8A'4>(PSJ$>G]NQB00"E(",&0TRUQK(ZH[RB=0GB6 .I2*$MS/5V
M?;>=+:6S4;>'I77@S];CUX**^]NH9!?U(5H#;0CN-8)[SP@V@&$T!&\FP9Y
MN6%XHQ6D<B+8'[#J67V\K'98($:W*JWWB=>\BX(MF<]#DH.0#85QHS#^+X49
MP1R: K -<)M%XHIBF\)XQ[=X)Y-'8))=3&]?&ON-R/Y!D8]B38]-U!@$Y,QH
M5$8-]M"*9X25>&\,@3P'US4=$,MV:SK[.X<MW!%[!"8YC*G%^FM]J 0U<?U<
MDU16PM0UO5EMG@P7KE-NK5_B4Z+N_/]HZG?(#543)C3AD"-EYZR/!TW5O;V>
M&#EUW6XL#?9.-RSP.03* O![+J593>P&S0-K]!=02P,$%     @ B8);6@V(
M!TG+ @  E @  !D   !X;"]W;W)K<VAE971S+W-H965T-S4N>&ULO59=3]LP
M%/TK5QF:0&+DH]^LC31:H55B@"AL#],>W.2V\4CLS'8_^/>SG1 Z2/. 8"^)
M[?B<>XZO[9OAAHM[F2 JV&8IDR,G42H_=5T9)9@1><)S9/K+@HN,*-T52U?F
M DEL05GJ!I[7=3-"F1,.[=BU"(=\I5+*\%J 7&49$0]GF/+-R/&=QX$;NDR4
M&7##84Z6.$-UEU\+W7,KEIAFR"3E# 0N1LX7__3,]PS SOA.<2-WVF"LS#F_
M-YUI/'(\HPA3C)2A(/JUQC&FJ6'2.OZ4I$X5TP!WVX_LY]:\-C,G$L<\_4%C
ME8R<O@,Q+L@J53=\\Q5+0QW#%_%4VB=LRKF> ]%**IZ58*T@HZQXDVVY$#N
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
M_(4M?V$_?ZV,EJ7U*JVG8/96ETZ;9(7!\;+%78 7MN"%_2FP6PT(D(#)BC:
M*-Q.2IDH:J^L@_ZRG5V@%+8HA?U8<TH55ZA\D8!$#H%8X=1:7WVG+X)7C.V"
MA+ E(;QA,FLQ8K ?4FX&$/WB>>*T6"I'I&UQ)1!W03S8$@_VY[36&@1_+V8(
M/6NE7YEXULI=@ ZVH(,W!!WVS/6KD%.)+H_G\K.KO^YMO5G(P7[(V3K[6NDV
MMX:(K.X,NX 88B&&>#EANPQLI=ET=K!BS%_QML8LH! _6-2/G96/O;5;N%]H
MX]= T>J+D?ZZS"NQ-$+\-+)^59'%8S6;3%CQ_G8QX>B#>^@"@4AE%KLVG8BL
M>2U &B_R_,#B?;* C]?TF6=SYR+J5][8X2ZHAEBJ(6'3221H.BF46MN\92#B
M9Z +*M,7)!GLFX7YYGZR+KS[;]I2_!5O:\PR$/$ST*O1S?.UT1TT.11*K=T/
M%I5(V.00"9H<"J76-F^9B?B9:9OH=@/3<E;(7_&VQBPPD8VR0A_1)9>P3]U5
MYT=>SQ+Y]3<>YET 5FP!*PZ;)8J#9HE"J;7-6PB+_1#VQG,I#F1RY%#\=6WK
MQ1)8[">PE;"&,!9YLD%<^RO8>&AWD5**+:'%8<]:Q4&Q+)1:VWSCN%60\U:K
M9Z0B5UP'I:QNX^1BQN1#<:!3H>(IM3S$6'];'QK]7!R5[-K;RQ.GUU0^P",'
M2MD$BO;V!T!-LCS$67[08E:<@QP)K4567$X939@T-\#O$R'TXH.IH#Y*._P/
M4$L#!!0    ( (F"6UK.!LQXJ@(  ,@&   9    >&PO=V]R:W-H965T<R]S
M:&5E=#@S+GAM;*6576_:,!2&_XJ555,KC>8# AD+D=JBJI4ZJ2KM=C'MPB0'
ML.K8F>U NU^_8X=F; 1V,2Z('?N\[W-RG)-T(]6S7@$8\E)RH2?>RIAJ[/LZ
M7T%)];FL0.#*0JJ2&IRJI:\K!;1P027WHR 8^B5EPLM2=^]>9:FL#6<"[A71
M=5E2]7H)7&XF7NB]W7A@RY6Q-_PLK>@29F">JGN%,[]5*5@)0C,IB(+%Q+L(
MQY>)W>\V?&&PT3MC8C.92_EL)[?%Q LL$'#(C56@>%G#%7!NA1#CQU;3:RUM
MX.[X3?W:Y8ZYS*F&*\F_LL*L)E[BD0(6M.;F06YN8)M/;/5RR;7[)YMF[P@=
M\UH;66Z#<5XRT5SIR_8Y[ 1$T8& :!L0.>[&R%%.J:%9JN2&*+L;U>S I>JB
M$8X)6Y294;C*,,YD4Y@;TB,S+'91<R!R0>ZD6/8>097$+=X*;52-=3":G$[!
M4,;U&3DA3)#'E:PU%85.?8,L5M'/M[Z7C6]TT#<_)_WP XF":$">9E-R>G+V
MIXR/J;3Y1&T^D=/M'\MGRG3.I:X5D&\7<\3'VG_O8FRT!MU:]GT8ZXKF,/'P
MP&M0:_"R]^_"8?#I"&F_)>T?4\^N49BL*:_=0R^0NXNPT1@Y#?N"K;-^@+_4
M7W=8#UKKP5'KBZ(8DXJ^VJ)B'7O/3!1X-8!9=E(T<L,=BD'2[V:(6X;XWPRT
ME,JPGU 0>&&&+ "ZW.,]]S"*N]V'K?OPJ/L=:#TFM?@-8 M F-8U%5B7 R3#
M/9)>&,9A-\NH91G]%TLNM>E\PT;[-'$<=<,D+4QR%.91&LH)MRW V!9PZ%PF
M>^<R2CX&?U?%WVE,ML=_IFK)A"8<%A@7G(^PM*KIF\W$R,KUJKDTV/G<<(6?
M&E!V ZXOI#1O$]O^VH]7]@M02P,$%     @ B8);6C<>D78) P  !@D  !D
M  !X;"]W;W)K<VAE971S+W-H965T.#0N>&ULC99=;YLP%(;_BL6JJ966\A7(
MQQ*DMM&T2:U4->UV,>W"@9/$JK&9;9)VOWXV4)(N#MD-V.#S/N\Q]C&3+1?/
M<@V@T$M.F9PZ:Z6*L>O*= TYEI>\ *;?++G(L=)=L7)E(0!G55!.W<#S8C?'
MA#G)I'IV+Y()+Q4E#.X%DF6>8_%Z#91OIX[OO#UX(*NU,@_<9%+@%<Q!/17W
M0O?<5B4C.3!).$,"EE/GRA]?^Z$)J$9\)["5>VUD4EEP_FPZW[*IXQE'0"%5
M1@+KVP9N@%*CI'W\;D2=EFD"]]MOZE^JY'4R"RSAAM,?)%/KJ3-T4 9+7%+U
MP+=?H4DH,GHII[*ZHFT]=A Z*"VEXGD3K!WDA-5W_-),Q%Y $!P)")J H/)=
M@RJ7,ZQP,A%\BX09K=5,HTJUBM;F"#-?9:Z$?DMTG$IFL%"HA^;Z:V<E!<27
MZ ZK4A!%0)K>+6>KWB.('%5#SV>@,*'R ITAPM#CFI<2LTQ.7*7=&$TW;<C7
M-3DX2DXO4>A_0H$7]-'3?(;.SR[>R[@ZF3:CH,THJ'3#KHQF1*:4RU( ^GFU
MD$KHK__+YK'6ZMNUS)88RP*G,'7TFI<@-N D'S_XL?>YPVG8.@V[U!.=>&3S
M5$<-JBBSJS:)-W$W%E"_!?5/@6(;J(Z*3X.B%A2= @ULH.@ Y(=!W+?#XA86
MGX(-;;#X$!:-_($=-FAA@U.PD0TV.( %<13:6<.6->QD/7*%*2H$82DI3 N_
MZCJHK'ML>, /_6%X9&9'K8%1IX&K+!LCG'.AR!_($+P0A98 -O[H<++-HK;1
M?6]7D[Q._BU(.48E2W%!]%14)II)T$6G]TQ8IN\*])94UL+C';CJ^6'D'_&U
M5RO]__*UFYK,%!LB98E9"L?FJ%%];\<_:F=7Z/S.ZG323LJE?=$TNN\,15%P
MQ,^NG/G=]:Q>M]0<&,H<&,:-%7]8X(+AR/MWV;A[IYKY0[C#8D681!26.LZ[
M'.BJ(NI#M^XH7E0'W8(K?6Q6S;7^40%A!NCW2\[56\><G>VO3_(74$L#!!0
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
MVZ9A4Z)GTUFT\CUE]4 $68T24HU!J<F>-71+^B!M TJZH&H,2DUVL"%=HN5
M?=L,6F>ZV_Y)IXBRV[_H%%']?E?3T 8SJ1XS%[/[SY.';_.I\IFD-O?LAY*0
M:@Q*3?:MX5N*09[J@G(NJ!J#4I,=;#B7:BE0VSA5ZO'S6(>T&D<115HLQQ11
MM UIO:,U&2%/UL7:EA0MXUTDRI4+]=%Z_<RD6#5R<OP&7[-R%4PC4R[*N?.2
MM1^E*. OF:1YY6;W^Z1<YU+NB'A;K/QXCH6(PV)SP[T53_* [/.7.!:O._D7
MU*N-QO\#4$L#!!0    ( (F"6UIH-?!>S@,  * 5   9    >&PO=V]R:W-H
M965T<R]S:&5E=#@X+GAM;+6878^;.!2&_XK%5JM6F@X?24AF-HG4!-!VM6U'
M,^WNQ6HO/' 24,&FMDG:?[^V82BD#)M([DT Y[S/P7Z-#6=YI.PS3P$$^EKD
MA*^L5(CRUK9YG$*!^34M@<A_=I056,A+MK=YR0 G6E3DMN<XOEW@C%CKI6Z[
M8^LEK42>$;ACB%=%@=FW#>3TN+)<ZZGA/MNG0C78ZV6)]_  XE-YQ^25W5*2
MK #",TH0@]W*>N/>1JX6Z(B_,CCRSCE277FD]+.Z>)NL+$?=$>00"X7 \G"
M+>2Y(LG[^-) K3:G$G;/G^B1[KSLS"/FL*7YWUDBTI6UL% ".USEXIX>?X>F
M0S/%BVG.]2\ZUK'S&PO%%1>T:,3R#HJ,U$?\M1F(CD!RA@5>(_!.!=-G!)-&
M,#D5^,\(IHU@>FZ&62.8G2OP&X&OQ[X>+#W2 19XO63TB)B*EC1UHNW2:CG
M&5$SZT$P^6\F=6)]#URP*A85R\@>;5/,]L#1RP $SG+^"KU&GQX"]/+%*_0"
M901]3&G%,4GXTA8RNV+8<9-I4V?RGLGDHG>4B)2CD"20#.B#_]%[(P!;=KOM
MN_?4]XTW2ORCRJ_1Q+U"GN--!FYH.RY_3P]2[FBY-]2?<7D <9M].B /SY</
MW7QTOMP;&<M).X\FFC<Y;QY1+I"<)D@V SL ^N=/&8_>"BCXOT-3IX9/A^%J
M=;WE)8YA9<GE4Q.M]:^_N+[SVY!M)F&!25AH$A89@O7LGK9V3\?H)W;'];(Q
M9.PHYE)C3<*"&C;7,+7_'M;.TCYTW?HQ8N(MIOV@:"#(]>=M4&]T9^WHSD9'
M]P.!UT+NW^@C,+GF8[T';X# +A.#HSR*NW243<("D[#0)"PR!.L9[+<&^S]S
MM?1-VFT2%IB$A29AD2%8S^YY:_?\@M52.<T@QP(2%$OKKQ"IBD=@B.Y027FF
MGG:.(,_THP_)%2J!9311AQB(&)H1=7[7Z:YFU]ZLOU9M!Z/<13\J&.W+I1Z:
MA$6&8#T/%ZV'"S,[WBCFTH?3)"PP"0MKF-^92O)C]F1O7 QLH)V@G@\WK0\W
MHSZ$19G3;P#H 0[ ,(EAR(11QJ4FF(0%)F&A25AD"-9SU76^?X<Z/W-+;.B&
M'#=*"XS20J.TR!2M[WJG^N":657'.1?[:Y(6&*6%#:W_1?'#TFHJ9^V;W2D@
M%2 ]4*4^+M].*B+J&D#;VI83W^@BVDG[QKW=N@/M@2H_ZH+5=WQ=NWPG+<_D
M^TX..YG*N9[+]W)6EP/K"T%+7;YZI$+00I^F@!-@*D#^OZ-4/%VH!&U1=OT?
M4$L#!!0    ( (F"6UJ"C#&O1P,  - 4   -    >&PO<W1Y;&5S+GAM;-U8
M76_:,!3]*Y&[3JTT-4#:0%9 VI J3=JF2NW#WBI#'+#D.)EC.NBOGV]LPD=]
M$>O#!@LJL>_Q.??8OFG<]BN]%.QAQI@.%KF0U8#,M"X_AF$UF;&<5E=%R:1!
MLD+E5)NNFH95J1A-*R#E(NRT6G&84R[)L"_G^5VNJV!2S*4>D&X3"NSM2SH@
M[?B:!%9N5*1L0)XNWO^<%_KV76#O9Q_.SEI7K:?+VUWDPD&7)/0*WQP@C,IB
MHO%!;LVUQ["Y,/GN8?+[Q#'IWK9T/?S<"%GB.49+/#239<V$#D+NMOSDUB;9
M&@Y=L0S[62'7-1,1&S#J-&?!,Q4#,J*"CQ4'5D9S+I8VW(' I!"%"K0I5I.N
M#9'JQ<)MVX,Z=CHYEX6J<]L,]GOLAN\ JQX8Y$(T!CO$!H;]DFK-E+PSG7IP
M'7P%!:[]N"R-PZFBRW;GAJP)]<TD&1<J9:I)TR:KT+ O6 9V%)_.X*Z+,@10
MZR(WC933:2%I[6'%< TC.V%"/,!#_B/;TEYD&_M6[YILFL:0:UH9VP']336K
MO2E[_2;=H.3/A?X\-].1=1^JF]TKEO%%W5]DC0%,O8VKT[(4RT^"3V7.[.0/
M3CCLTQ4OF!6*OYAL4"H3$V"*!,],:3[9C/Q2M'QD"[TJIT6&>^Z<H.>_N\Y3
M)IFB8M.TJ?UC7N4W.W9OQ7_AN?ZULNO8:S+J'K]'=PHX=I/Q*9@\B>WNG8+)
MY/A-1B?@T9TOC\YDZ$Y"&\>MK<-6$PW@4#L@W^&(+-9)@_&<"\VEZ\UXFC+Y
MZLQEY#4=FS_7MO3-^)1E="[T8P,.R+K]C:5\GB?-J'M8"#=JW?X*TVO'S8G:
MY.(R90N6CEQ73<=U,S -D]5=0-A%[NK+CV <B_D1P+ \F .,8UE8GO]I/CUT
M/A;#O/6\2 _E]%".9?F04?W!\O@YB;G\,TV2*(IC;$5'(Z^#$;9N<0P_?C7,
M&S"P/)#IS]8:WVV\0O;7 ;:G^RH$FRE>B=A,\;4&Q+]NP$@2_VYC>8"![0)6
M.Y#?GP=JRL^)(MA5S!OV!.-(DF (U**_1N,869T8/O[]P9Z2*$H2/P*8WT$4
M80@\C3B".0 /&!)%]7MPYWT4KMY3X?I_F,/?4$L#!!0    ( (F"6UJ7BKL<
MP    !,"   +    7W)E;',O+G)E;'.=DKENPS ,0'_%T)XP!] AB#-E\18$
M^0%6H@_8$@6*19V_K]JE<9 +&7D]/!+<'FE [3BDMHNI&/T04FE:U;@!2+8E
MCVG.D4*NU"P>-8?20$3;8T.P6BP^0"X99K>]9!:G<Z17B%S7G:4]VR]/06^
MKSI,<4)I2$LS#O#-TG\R]_,,-47E2B.56QIXT^7^=N!)T:$B6!::1<G3HAVE
M?QW']I#3Z:]C(K1Z6^CY<6A4"H[<8R6,<6*T_C6"R0_L?@!02P,$%     @
MB8);6D=< $->!@  Y#D   \   !X;"]W;W)K8F]O:RYX;6S%F]MNVS@00'^%
M\%,*K-?672V: FF,=@/D8B1!7PM:HFW"$FF0<K+IUR\I.>THE@?[,O&3HTOH
M(XKDF2'IS\_:;!9:;]B_=:7L^6C=--M/DXDMUJ+F]F^]%<I=66I3\\8=FM7$
M;HW@I5T+T=35))Q.TTG-I1I]^?Q:UMQ,X(%N1-%(K=Q)?^*'%,_VSW5_R)ZD
ME0M9R>;E?-3^78D1JZ62M?PERO/1=,3L6C__HXW\I57#JX?"Z*HZ'P7=A1_"
M-+(X./W@(1_YPK9G&KZXYP[D?)1.78%+:6S3WM&6SQWCDW W=T>[1G^352/,
MC#?BN]&[K50K7XQ[B@EXC+8>7C^[2OQD_D\UZN52%F*FBUTM5-/5HQ&5!U1V
M+;=VQ!2OQ?GH4C\)P^9\)?Q#N6^Y*KL';!P9J"[S2;H+YJIL&>EX+G:E;-B5
MZO[97058(8(5TF)=NF-=R=)]>\F^\HJK0K#V]5H &"& T<D V=F< \@8@8S?
M$?+!0_A_L$POV=U6& "9()#)"2%_A@ R12!3<LA2*.L(!W$!9(9 9B>KR8=&
M%P R1R#S$T+V7O='!/+CR2 ON5W#H7N*C=W3$V+VZC) %4/LF)FPA9%;?]ZC
M?=U9J82% WF J28@=LU7;F5;9W,CK+NUO8-QY:IT5]=P* \PX03$QKD73T+M
M!+L7A5XI^<;5 ::9@-@SMZ[<:VTM<U)Q$N2F%]Q@;@G(Y5)5?*$-]^$@NS"&
MJU7722 A)I: V"Q7ZDG8INNW4K%;K<8WW&R$BV\K%U% 3$PM ;%;OG%IV ]>
MN09X([C=F<-:Q*02$%NE%X&QF:L]6?7@,)D$Q#;Q\MV,%[P+'VI7DCT(M3&-
MA-0:X5OILK V2-A *$P:(;$TXFEPMOG YNZ]0B0T)R$6Q94J="W8(_]7P+85
M8E8(R?.0NI;[X<,KRX4$C<MMA2ID'Q+S0TCLAYE8-) %,T)(;(0'L?)W_,6^
M"[TR?+OV,PUMU=TUZUY.%&):"(FU<.^D8'9%LS/N;;)+Y]15_WUB,@B)93#G
M+^S)LKDP[;_[@7<F;5%I[P4(B2DA)%;"E;*R=/'(H^&EK\,C\@\Q,X3$9GC+
M.'?1O.^X;7N<P\8888*(J 7QLA#&BL(UQN:%W4N[83=<\:XR&8R0(TP9$;$R
MT$"^EPY%F$:B4^8;/R.(B4YPO7^^P<X>?51J/T!&3"S1NR<>@XB8;R)BWZ#Q
M?;]18KZ)B'US)+Y_K4Z(B9DG(C;/8)P_^,XQ]43$ZCD6\.]!(29FGXC</G_B
MV:$ZC#'GQ.1S6TA@R\X@)N:<F'QN:]$,UAUFF)C8,&B,VQMS8LPP,;%ACLP+
MLK.N7T-,=!&%6#*XKV.(B8DF)A8-CIE 3$PT,7EB<QA6C'WZP%<K(U80$Q--
M3"R:84P_"!E>]!*(&#--3&R:8<Q;;KH93XB)F28F-LTPYN^S<"$2<TY"[)QA
MS-]I+L3$G),0.V<HZMV'0E!!"::@A'P!_]C$>]L^(2:FH(1807AT#G.Q!%-0
M0JP@'!,J*$%7\HD5="R)&+,'5WH),3$%)2?*=?8#)\3$%)2<)-?9U^4.AD<)
MIJ#D%$LO?R0$,3$%)<0*.H8Y-ZY4 Z>G4TQ!*;&"T)?>WPV#*2@EGVH;QFSG
MT-D%Q,0LE%(G0L<2\:YY0DS,0BFQA1#,-QMW4LQ"*;&%$,P+:W<0$[-02KW"
M<QSS;ML;D%)T1QFQA;#:?.:]MHE9**7>5 87AP?CS!2S3TIL'[!,/ R'.2=]
MSPFV<?N6M7K=H76MX:Y!S#D9L7-0S-XJ5(8Y)R-VSAM,]\GN'4J;K:D"]NL,
M<T[VCKL$#FIS!E/R#'-.1I[Y]#!_3QGL>Q'$Q)R3D6<^?<R[:W;I4%]<86Z0
MA"E%ACDG(U_EZ6'NFV0ENQ&]U],QYV3DVYBQ2?4QQ$3W,9-O9$8P>T%PAKDG
M(]_*C&'"R8,,LU!&OID9PX23!SEFH?R4"SZ]^>L<LU#^'@L^A^-E/^K(,0'E
MQ +:$^ZG"407:ZC5^%&8NB^@'!-03K[Z<X!YP_U^I\:/17#(S#$!Y=1)#[J6
M!CMYC@DH/^6VMGXGQP244R<]*&:ODV,"RLE7?P9VWPWW=/2G-*V )NW-]LOG
M4BRE$N6M^PKKSKLG+^:&^0]?4A#&B=^FO-Q5U:4[=Z>N-2]??Z3X^@/++_\!
M4$L#!!0    ( (F"6UK#)=E(E (  -\S   :    >&PO7W)E;',O=V]R:V)O
M;VLN>&UL+G)E;'/-VDUNHT 0AN&K6!P@N*NZJMNC.*O99!OE LAI_RBV0< H
MR>W'<A;VAV8QFXAOA1I$\:X>(>C'EW)LQD-['O:';EA\GH[G85WMQ['[5=?#
M9E].S?#0=N5\N;)M^U,S7I;]KNZ:S7NS*[4LEU[W]S.JI\?[F8O7KZ[\S\1V
MNSULRN]V\^=4SN,_!M<?;?\^[$L9J\5KT^_*N*[JS^/M]%!?#^'A,KE:/+^M
MJ_[Y+53UW$$"03)_D$*0SA\4(2C.'V009/,'.03Y_$$)@M+\01F"\OQ!*PA:
MS1\4EBCCDB!I@C6!U@&Y#@1>!P0[$(@=D.Q 8'9 M .!V@'9#@1N!X0[$,@=
MD.Y 8'= O .!WH)Z"X'>@GH+@=XR>=DFT%M0;R'06U!O(=!;4&\AT%M0;R'0
M6U!O(=!;4&\AT%M0;R'06U%O)=!;46\ET%M1;R706R<?2PCT5M1;"?16U%L)
M]%;46PGT5M1;"?16U%L)]%;46PGTCJAW)- [HMZ10.^(>D<"O2/J'0GTCI./
MW01Z1]0[$N@=4>](H'=$O2.!WA'UC@1Z1]0[$NAMJ+<1Z&VHMQ'H;:BW$>AM
MJ+<1Z&VHMQ'H;9.?E01Z&^IM!'H;ZFT$>AOJ;01Z&^IM!'H[ZNT$>COJ[01Z
M.^KM!'H[ZNT$>COJ[01Z.^KM!'K[9+,)@=Z.>CN!WHYZ.X'>CGH[@=X)]4X$
M>B?4.Q'HG5#O1*!W0KT3@=X)]4X$>B?4.Q'HG5#O1*!WFFP6)- [H=Z)0.^$
M>B<"O3/JG0GTSJAW)M [H]Z90.^,>F<"O3/JG0GTSJAW)M [H]Z90.^,>F<"
MO?-DL_=/ZCV,7\<RW'J^U_C\GZ1ZO-Q;;H^_+K]/HH2K*\[U?<7P]!=02P,$
M%     @ B8);6HV<RZLT @  5C(  !,   !;0V]N=&5N=%]4>7!E<UTN>&UL
MS=M-;MLP$(;AJQC:!I8L4J34(LZF[;;-HA=@)3H6K#^03.K<OI2<!&B1&@E<
MH._&@DUROA$'>':^_OXX6;\Z]MW@M\D^A.ECEOEZ;WOCTW&R0US9C:XW(7YU
M=]EDZH.YLYG8;'16CT.P0UB'N49R<_W9[LQ]%U9?CO%GWX[#-G&V\\GJTVGC
MG+5-S#1U;6U"7,\>AN:/E/530AI/+GO\OIW\5=R09*\FS"M_#W@Z]^W!.M<V
M=G5K7/AJ^K@K.W:9#X^=]>GY$J_T..YV;6V;L;[OXY'43\Z:QN^M#7V7GHI>
MG4\.\8;MZ3._.'\I<RXP[KQUX^3CQ)Q]?]SS2.;3ZRD6LBZTYU_Q)3&6OOC]
M[#SMQC9OS([7^W-TAV4>/EL>E]_Q[S-^J?_./@2D#PGIHX#TH2!]:$@?):2/
M"M+'!T@?^8;2"$74G$)J3C$UIZ":4U3-*:SF%%=S"JPY159!D5509!44605%
M5D&155!D%119!45609%54&25%%DE159)D5529)44625%5DF155)DE119)476
M@B)K09&UH,A:4&0M*+(6%%D+BJP%1=:"(FM!D5519%44615%5D6155%D5119
M%45619%54615%%DU159-D5539-44635%5DV155-DU119-45639&UI,A:4F0M
M*;*6%%E+BJPE1=:2(FM)D;6DR%I29*THLE8462N*K!5%UHHB:T61M:+(6E%D
MK?ZGK#_&\?"/XY=GVIMV>,[/EK^3W/P"4$L! A0#%     @ B8);6@=!36*!
M    L0   !               ( !     &1O8U!R;W!S+V%P<"YX;6Q02P$"
M% ,4    " ")@EM:BX;\-^X    K @  $0              @ &O    9&]C
M4')O<',O8V]R92YX;6Q02P$"% ,4    " ")@EM:F5R<(Q &  "<)P  $P
M            @ ', 0  >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0    (
M (F"6UK LA_/C@@  &<R   8              " @0T(  !X;"]W;W)K<VAE
M971S+W-H965T,2YX;6Q02P$"% ,4    " ")@EM:BR'Q3#,"  "O!0  &
M            @('1$   >&PO=V]R:W-H965T<R]S:&5E=#(N>&UL4$L! A0#
M%     @ B8);6J+/R[N(!P  MB$  !@              ("!.A,  'AL+W=O
M<FMS:&5E=',O<VAE970S+GAM;%!+ 0(4 Q0    ( (F"6UJ/YKG\\0(  %D*
M   8              " @?@:  !X;"]W;W)K<VAE971S+W-H965T-"YX;6Q0
M2P$"% ,4    " ")@EM:+GU'NPD&  "<'   &               @($?'@
M>&PO=V]R:W-H965T<R]S:&5E=#4N>&UL4$L! A0#%     @ B8);6N3KYP&L
M P  11   !@              ("!7B0  'AL+W=O<FMS:&5E=',O<VAE970V
M+GAM;%!+ 0(4 Q0    ( (F"6UIES9D5"@,  *<)   8              "
M@4 H  !X;"]W;W)K<VAE971S+W-H965T-RYX;6Q02P$"% ,4    " ")@EM:
M[T=K0'$(  "I10  &               @(& *P  >&PO=V]R:W-H965T<R]S
M:&5E=#@N>&UL4$L! A0#%     @ B8);6N"?_\9Z @  Z04  !@
M     ("!)S0  'AL+W=O<FMS:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0    (
M (F"6UJ8B(:EN@H  *DU   9              " @=<V  !X;"]W;W)K<VAE
M971S+W-H965T,3 N>&UL4$L! A0#%     @ B8);6EW;M<HP P  ] H  !D
M             ("!R$$  'AL+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q02P$"
M% ,4    " ")@EM:2LQRUE@%  ###   &0              @($O10  >&PO
M=V]R:W-H965T<R]S:&5E=#$R+GAM;%!+ 0(4 Q0    ( (F"6UHA+C=T=2D
M "R&   9              " @;Y*  !X;"]W;W)K<VAE971S+W-H965T,3,N
M>&UL4$L! A0#%     @ B8);6H>W_R#W"   #!D  !D              ("!
M:G0  'AL+W=O<FMS:&5E=',O<VAE970Q-"YX;6Q02P$"% ,4    " ")@EM:
MU_:3UI,$   U"P  &0              @(&8?0  >&PO=V]R:W-H965T<R]S
M:&5E=#$U+GAM;%!+ 0(4 Q0    ( (F"6UJ+<@&'[14  .E'   9
M      " @6*"  !X;"]W;W)K<VAE971S+W-H965T,38N>&UL4$L! A0#%
M  @ B8);6LO@)-A'"@  [R   !D              ("!AI@  'AL+W=O<FMS
M:&5E=',O<VAE970Q-RYX;6Q02P$"% ,4    " ")@EM:NJOO1;($  !N"P
M&0              @($$HP  >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;%!+
M 0(4 Q0    ( (F"6UHV!/Q-,P@  -(5   9              " @>VG  !X
M;"]W;W)K<VAE971S+W-H965T,3DN>&UL4$L! A0#%     @ B8);6C*'E]!V
M%0  54T  !D              ("!5[   'AL+W=O<FMS:&5E=',O<VAE970R
M,"YX;6Q02P$"% ,4    " ")@EM:RK"'C,@%   ^$   &0
M@($$Q@  >&PO=V]R:W-H965T<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    ( (F"
M6UKCM\58%@,  /\&   9              " @0/,  !X;"]W;W)K<VAE971S
M+W-H965T,C(N>&UL4$L! A0#%     @ B8);6N^0,-E4"@  H!L  !D
M         ("!4,\  'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6Q02P$"% ,4
M    " ")@EM:(:H3!C80  #5+@  &0              @(';V0  >&PO=V]R
M:W-H965T<R]S:&5E=#(T+GAM;%!+ 0(4 Q0    ( (F"6UKRYM$B\P<  *L3
M   9              " @4CJ  !X;"]W;W)K<VAE971S+W-H965T,C4N>&UL
M4$L! A0#%     @ B8);6F(N5"MK"   9A8  !D              ("!<O(
M 'AL+W=O<FMS:&5E=',O<VAE970R-BYX;6Q02P$"% ,4    " ")@EM:QRQU
MU\4#  "8"0  &0              @($4^P  >&PO=V]R:W-H965T<R]S:&5E
M=#(W+GAM;%!+ 0(4 Q0    ( (F"6UH?3K8L70(  '\&   9
M  " @1#_  !X;"]W;W)K<VAE971S+W-H965T,C@N>&UL4$L! A0#%     @
MB8);6BQU:+Y# @  B@8  !D              ("!I $! 'AL+W=O<FMS:&5E
M=',O<VAE970R.2YX;6Q02P$"% ,4    " ")@EM:/*4S.!$"  #=!   &0
M            @($>! $ >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+ 0(4
M Q0    ( (F"6UHQ5SM$RPP  -@W   9              " @68& 0!X;"]W
M;W)K<VAE971S+W-H965T,S$N>&UL4$L! A0#%     @ B8);6CCXT"=_,P
M@K   !D              ("!:!,! 'AL+W=O<FMS:&5E=',O<VAE970S,BYX
M;6Q02P$"% ,4    " ")@EM:AX7P?[P$  #L"@  &0              @($>
M1P$ >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;%!+ 0(4 Q0    ( (F"6UHF
M01*/[@0  $<,   9              " @1%, 0!X;"]W;W)K<VAE971S+W-H
M965T,S0N>&UL4$L! A0#%     @ B8);6MBOJ^!R P  3P<  !D
M     ("!-E$! 'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6Q02P$"% ,4
M" ")@EM:LIV4E[,"   P!@  &0              @('?5 $ >&PO=V]R:W-H
M965T<R]S:&5E=#,V+GAM;%!+ 0(4 Q0    ( (F"6UK;+&_-2@0  % *   9
M              " @<E7 0!X;"]W;W)K<VAE971S+W-H965T,S<N>&UL4$L!
M A0#%     @ B8);6E0H0)K*!0  Y@X  !D              ("!2EP! 'AL
M+W=O<FMS:&5E=',O<VAE970S."YX;6Q02P$"% ,4    " ")@EM: FQH+8L(
M  "5'   &0              @(%+8@$ >&PO=V]R:W-H965T<R]S:&5E=#,Y
M+GAM;%!+ 0(4 Q0    ( (F"6UHCI*'O" <   $4   9              "
M@0UK 0!X;"]W;W)K<VAE971S+W-H965T-# N>&UL4$L! A0#%     @ B8);
M6I?=G=]B!0  R@X  !D              ("!3'(! 'AL+W=O<FMS:&5E=',O
M<VAE970T,2YX;6Q02P$"% ,4    " ")@EM:Y-+$\W4#  "A"   &0
M        @('E=P$ >&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4 Q0
M   ( (F"6UKHU\J.Q@0  (0-   9              " @9%[ 0!X;"]W;W)K
M<VAE971S+W-H965T-#,N>&UL4$L! A0#%     @ B8);6N?@V]Z& @  [08
M !D              ("!CH ! 'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6Q0
M2P$"% ,4    " ")@EM:C#,B%7L$   F%@  &0              @(%+@P$
M>&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;%!+ 0(4 Q0    ( (F"6UI2RN^]
MG0(  !()   9              " @?V' 0!X;"]W;W)K<VAE971S+W-H965T
M-#8N>&UL4$L! A0#%     @ B8);6D;4")P;!   ;Q<  !D
M ("!T8H! 'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6Q02P$"% ,4    " ")
M@EM: :RPDG@"  !W!@  &0              @($CCP$ >&PO=V]R:W-H965T
M<R]S:&5E=#0X+GAM;%!+ 0(4 Q0    ( (F"6UHD1J;>T0,  &85   9
M          " @=*1 0!X;"]W;W)K<VAE971S+W-H965T-#DN>&UL4$L! A0#
M%     @ B8);6A^NY!HM P  70D  !D              ("!VI4! 'AL+W=O
M<FMS:&5E=',O<VAE970U,"YX;6Q02P$"% ,4    " ")@EM:4#/W_D$#  "B
M#P  &0              @($^F0$ >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM
M;%!+ 0(4 Q0    ( (F"6UK!N48$F@,   ,2   9              " @;:<
M 0!X;"]W;W)K<VAE971S+W-H965T-3(N>&UL4$L! A0#%     @ B8);6AE8
M5>V+(P  L,X" !D              ("!AZ ! 'AL+W=O<FMS:&5E=',O<VAE
M970U,RYX;6Q02P$"% ,4    " ")@EM:GQ+!EXH0  #D$P$ &0
M    @(%)Q $ >&PO=V]R:W-H965T<R]S:&5E=#4T+GAM;%!+ 0(4 Q0    (
M (F"6UIP%)DW8P,  )81   9              " @0K5 0!X;"]W;W)K<VAE
M971S+W-H965T-34N>&UL4$L! A0#%     @ B8);6I";MS[3"   OU,  !D
M             ("!I-@! 'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6Q02P$"
M% ,4    " ")@EM:-"Q9J)\"  "6!@  &0              @(&NX0$ >&PO
M=V]R:W-H965T<R]S:&5E=#4W+GAM;%!+ 0(4 Q0    ( (F"6UIN?P"ZA0(
M .L&   9              " @83D 0!X;"]W;W)K<VAE971S+W-H965T-3@N
M>&UL4$L! A0#%     @ B8);6L;]6/\H!   ]Q8  !D              ("!
M0.<! 'AL+W=O<FMS:&5E=',O<VAE970U.2YX;6Q02P$"% ,4    " ")@EM:
MZ1OAP&T%  "9(P  &0              @(&?ZP$ >&PO=V]R:W-H965T<R]S
M:&5E=#8P+GAM;%!+ 0(4 Q0    ( (F"6UJOZB]OEP(  /L&   9
M      " @4/Q 0!X;"]W;W)K<VAE971S+W-H965T-C$N>&UL4$L! A0#%
M  @ B8);6CI0+5RF @  'P<  !D              ("!$?0! 'AL+W=O<FMS
M:&5E=',O<VAE970V,BYX;6Q02P$"% ,4    " ")@EM:=7-J\00<  #9[0$
M&0              @('N]@$ >&PO=V]R:W-H965T<R]S:&5E=#8S+GAM;%!+
M 0(4 Q0    ( (F"6UJ3[SG3( 4  )LC   9              " @2D3 @!X
M;"]W;W)K<VAE971S+W-H965T-C0N>&UL4$L! A0#%     @ B8);6M]=]O'A
M!   ?A\  !D              ("!@!@" 'AL+W=O<FMS:&5E=',O<VAE970V
M-2YX;6Q02P$"% ,4    " ")@EM:AJ>JQ* %  #>'0  &0
M@(&8'0( >&PO=V]R:W-H965T<R]S:&5E=#8V+GAM;%!+ 0(4 Q0    ( (F"
M6UJE%1D". H  +5-   9              " @6\C @!X;"]W;W)K<VAE971S
M+W-H965T-C<N>&UL4$L! A0#%     @ B8);6KX-_0'*!0  6B\  !D
M         ("!WBT" 'AL+W=O<FMS:&5E=',O<VAE970V."YX;6Q02P$"% ,4
M    " ")@EM:1CM:/=8"  !Y"0  &0              @('?,P( >&PO=V]R
M:W-H965T<R]S:&5E=#8Y+GAM;%!+ 0(4 Q0    ( (F"6UJ;L*TOU0(  #P(
M   9              " @>PV @!X;"]W;W)K<VAE971S+W-H965T-S N>&UL
M4$L! A0#%     @ B8);6H*>&B$I P  ?0L  !D              ("!^#D"
M 'AL+W=O<FMS:&5E=',O<VAE970W,2YX;6Q02P$"% ,4    " ")@EM:X"SW
MH-X#   5#0  &0              @(%8/0( >&PO=V]R:W-H965T<R]S:&5E
M=#<R+GAM;%!+ 0(4 Q0    ( (F"6UJ\;7L$3 0  %(0   9
M  " @6U! @!X;"]W;W)K<VAE971S+W-H965T-S,N>&UL4$L! A0#%     @
MB8);6MREYB4C P  ; D  !D              ("!\$4" 'AL+W=O<FMS:&5E
M=',O<VAE970W-"YX;6Q02P$"% ,4    " ")@EM:#8@'2<L"  "4"   &0
M            @(%*20( >&PO=V]R:W-H965T<R]S:&5E=#<U+GAM;%!+ 0(4
M Q0    ( (F"6UJ0'#S&,0,  "$*   9              " @4Q, @!X;"]W
M;W)K<VAE971S+W-H965T-S8N>&UL4$L! A0#%     @ B8);6I@ _;J6"0
MA6(  !D              ("!M$\" 'AL+W=O<FMS:&5E=',O<VAE970W-RYX
M;6Q02P$"% ,4    " ")@EM:_Q?<2P<$   B$0  &0              @(&!
M60( >&PO=V]R:W-H965T<R]S:&5E=#<X+GAM;%!+ 0(4 Q0    ( (F"6UK)
M#'G$^0(  *\)   9              " @;]= @!X;"]W;W)K<VAE971S+W-H
M965T-SDN>&UL4$L! A0#%     @ B8);6A7$J(T. P  ;@H  !D
M     ("![V " 'AL+W=O<FMS:&5E=',O<VAE970X,"YX;6Q02P$"% ,4
M" ")@EM:JIMVL5\#  "M#   &0              @($T9 ( >&PO=V]R:W-H
M965T<R]S:&5E=#@Q+GAM;%!+ 0(4 Q0    ( (F"6UHQ-QL?R@8  %8K   9
M              " @<IG @!X;"]W;W)K<VAE971S+W-H965T.#(N>&UL4$L!
M A0#%     @ B8);6LX&S'BJ @  R 8  !D              ("!RVX" 'AL
M+W=O<FMS:&5E=',O<VAE970X,RYX;6Q02P$"% ,4    " ")@EM:-QZ1=@D#
M   &"0  &0              @(&L<0( >&PO=V]R:W-H965T<R]S:&5E=#@T
M+GAM;%!+ 0(4 Q0    ( (F"6UIG)W*0 0,  ,(*   9              "
M@>QT @!X;"]W;W)K<VAE971S+W-H965T.#4N>&UL4$L! A0#%     @ B8);
M6@\E-\PY!0  ORT  !D              ("!)'@" 'AL+W=O<FMS:&5E=',O
M<VAE970X-BYX;6Q02P$"% ,4    " ")@EM:0\#Y7#T%  !Y)   &0
M        @(&4?0( >&PO=V]R:W-H965T<R]S:&5E=#@W+GAM;%!+ 0(4 Q0
M   ( (F"6UIH-?!>S@,  * 5   9              " @0B# @!X;"]W;W)K
M<VAE971S+W-H965T.#@N>&UL4$L! A0#%     @ B8);6H*,,:]' P  T!0
M  T              ( !#8<" 'AL+W-T>6QE<RYX;6Q02P$"% ,4    " ")
M@EM:EXJ[',     3 @  "P              @ %_B@( 7W)E;',O+G)E;'-0
M2P$"% ,4    " ")@EM:1UP 0UX&  #D.0  #P              @ %HBP(
M>&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ B8);6L,EV4B4 @  WS,  !H
M             ( !\Y$" 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L!
M A0#%     @ B8);6HV<RZLT @  5C(  !,              ( !OY0" %M#
G;VYT96YT7U1Y<&5S72YX;6Q02P4&     &  8 !7&@  ))<"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>107
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>108
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
.report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

.report table.authRefData a {
	display: block;
	font-weight: bold;
}

.report table.authRefData p {
	margin-top: 0px;
}

.report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

.report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

.report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

.report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
.pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
.report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

.report hr {
	border: 1px solid #acf;
}

/* Top labels */
.report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

.report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

.report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

.report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

.report td.pl div.a {
	width: 200px;
}

.report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
.report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
.report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
.report .re, .report .reu {
	background-color: #def;
}

.report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
.report .ro, .report .rou {
	background-color: white;
}

.report .rou td {
	border-bottom: 1px solid black;
}

.report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
.report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
.report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

.report .nump {
	padding-left: 2em;
}

.report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
.report .text {
	text-align: left;
	white-space: normal;
}

.report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

.report .text .more {
	display: none;
}

.report .text .note {
	font-style: italic;
	font-weight: bold;
}

.report .text .small {
	width: 10em;
}

.report sup {
	font-style: italic;
}

.report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>110
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>381</ContextCount>
  <ElementCount>485</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>145</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>14</UnitCount>
  <MyReports>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover Page</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CoverPage</Role>
      <ShortName>Cover Page</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>0000002 - Document - Audit Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/AuditInformation</Role>
      <ShortName>Audit Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>9952151 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>9952152 - Statement - Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>9952153 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofOperations</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>9952154 - Statement - Consolidated Statements of Operations (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical</Role>
      <ShortName>Consolidated Statements of Operations (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>9952155 - Statement - Condensed Consolidated Statements of Comprehensive Loss</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss</Role>
      <ShortName>Condensed Consolidated Statements of Comprehensive Loss</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>9952156 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>9952157 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>9952158 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>9952159 - Statement - Consolidated Statements of Cash Flows (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical</Role>
      <ShortName>Consolidated Statements of Cash Flows (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>9952160 - Disclosure - Description of Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DescriptionofBusiness</Role>
      <ShortName>Description of Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>9952161 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>9952162 - Disclosure - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognition</Role>
      <ShortName>Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>9952163 - Disclosure - Net Loss per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/NetLossperShare</Role>
      <ShortName>Net Loss per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>9952164 - Disclosure - Collaborative Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangements</Role>
      <ShortName>Collaborative Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>9952165 - Disclosure - Investments in Non-Marketable Securities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecurities</Role>
      <ShortName>Investments in Non-Marketable Securities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>9952166 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>9952167 - Disclosure - Balance Sheet Details</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetails</Role>
      <ShortName>Balance Sheet Details</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>9952168 - Disclosure - Stock-based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensation</Role>
      <ShortName>Stock-based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>9952169 - Disclosure - Capital Stock</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CapitalStock</Role>
      <ShortName>Capital Stock</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>9952170 - Disclosure - 401(k) Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/A401kPlan</Role>
      <ShortName>401(k) Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>9952171 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>9952172 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>9952173 - Disclosure - Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/Debt</Role>
      <ShortName>Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>9952174 - Disclosure - Segment, Geographical and Other Revenue Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation</Role>
      <ShortName>Segment, Geographical and Other Revenue Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>9952175 - Disclosure - Restructuring Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RestructuringCharges</Role>
      <ShortName>Restructuring Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995447 - Disclosure - Insider Trading Policies and Procedures</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc</Role>
      <ShortName>Insider Trading Policies and Procedures</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure</Role>
      <ShortName>Cybersecurity Risk Management and Strategy Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>9955511 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>9955512 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>9955513 - Disclosure - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionTables</Role>
      <ShortName>Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/RevenueRecognition</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>9955514 - Disclosure - Net Loss per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/NetLossperShareTables</Role>
      <ShortName>Net Loss per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/NetLossperShare</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>9955515 - Disclosure - Investments in Non-Marketable Securities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables</Role>
      <ShortName>Investments in Non-Marketable Securities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/InvestmentsinNonMarketableSecurities</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>9955516 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/FairValueMeasurements</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>9955517 - Disclosure - Balance Sheet Details (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsTables</Role>
      <ShortName>Balance Sheet Details (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BalanceSheetDetails</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>9955518 - Disclosure - Stock-based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationTables</Role>
      <ShortName>Stock-based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/StockbasedCompensation</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>9955519 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/IncomeTaxes</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>9955520 - Disclosure - Commitments and Contingencies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesTables</Role>
      <ShortName>Commitments and Contingencies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/CommitmentsandContingencies</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>9955521 - Disclosure - Debt (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DebtTables</Role>
      <ShortName>Debt (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/Debt</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>9955522 - Disclosure - Segment, Geographical and Other Revenue Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</Role>
      <ShortName>Segment, Geographical and Other Revenue Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>9955523 - Disclosure - Description of Business (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DescriptionofBusinessDetails</Role>
      <ShortName>Description of Business (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/DescriptionofBusiness</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>9955524 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>9955525 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails</Role>
      <ShortName>Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>9955526 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails</Role>
      <ShortName>Revenue Recognition - Disaggregation of Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>9955527 - Disclosure - Revenue Recognition - Contracts with Customer (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails</Role>
      <ShortName>Revenue Recognition - Contracts with Customer (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>9955528 - Disclosure - Revenue Recognition - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionNarrativeDetails</Role>
      <ShortName>Revenue Recognition - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>9955529 - Disclosure - Revenue Recognition - Revenue Recognized (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails</Role>
      <ShortName>Revenue Recognition - Revenue Recognized (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>9955530 - Disclosure - Revenue Recognition - Performance Obligation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails</Role>
      <ShortName>Revenue Recognition - Performance Obligation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>9955531 - Disclosure - Net Loss per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/NetLossperShareDetails</Role>
      <ShortName>Net Loss per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/NetLossperShareTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>9955532 - Disclosure - Collaborative Arrangements - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails</Role>
      <ShortName>Collaborative Arrangements - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>9955533 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails</Role>
      <ShortName>Investments in Non-Marketable Securities - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>9955534 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails</Role>
      <ShortName>Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>9955535 - Disclosure - Fair Value Measurements - Schedule of Cash, Cash Equivalents, and Short-Term Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails</Role>
      <ShortName>Fair Value Measurements - Schedule of Cash, Cash Equivalents, and Short-Term Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>9955536 - Disclosure - Fair Value Measurements - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails</Role>
      <ShortName>Fair Value Measurements - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>9955537 - Disclosure - Balance Sheet Details - Schedule of Inventory Components (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails</Role>
      <ShortName>Balance Sheet Details - Schedule of Inventory Components (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>9955538 - Disclosure - Balance Sheet Details - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails</Role>
      <ShortName>Balance Sheet Details - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>9955539 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails</Role>
      <ShortName>Balance Sheet Details - Property and Equipment, net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>9955540 - Disclosure - Balance Sheet Details - Schedule of Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails</Role>
      <ShortName>Balance Sheet Details - Schedule of Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>9955541 - Disclosure - Balance Sheet Details - Other Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails</Role>
      <ShortName>Balance Sheet Details - Other Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>9955542 - Disclosure - Stock-based Compensation - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationNarrativeDetails</Role>
      <ShortName>Stock-based Compensation - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>9955543 - Disclosure - Stock-based Compensation - Stock-Based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails</Role>
      <ShortName>Stock-based Compensation - Stock-Based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>9955544 - Disclosure - Stock-based Compensation - Assumptions Used (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails</Role>
      <ShortName>Stock-based Compensation - Assumptions Used (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>9955545 - Disclosure - Stock-based Compensation - Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails</Role>
      <ShortName>Stock-based Compensation - Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>9955546 - Disclosure - Stock-based Compensation - Award Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails</Role>
      <ShortName>Stock-based Compensation - Award Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>9955547 - Disclosure - Capital Stock (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CapitalStockDetails</Role>
      <ShortName>Capital Stock (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/CapitalStock</ParentRole>
      <Position>68</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>9955548 - Disclosure - 401(k) Plan (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/A401kPlanDetails</Role>
      <ShortName>401(k) Plan (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/A401kPlan</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>9955549 - Disclosure - Income Taxes - Components of Loss Before Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails</Role>
      <ShortName>Income Taxes - Components of Loss Before Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>9955550 - Disclosure - Income Taxes - Components of Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails</Role>
      <ShortName>Income Taxes - Components of Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>9955551 - Disclosure - Income Taxes - Tax Rate Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails</Role>
      <ShortName>Income Taxes - Tax Rate Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>9955552 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails</Role>
      <ShortName>Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>9955553 - Disclosure - Income Taxes - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesNarrativeDetails</Role>
      <ShortName>Income Taxes - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>9955554 - Disclosure - Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails</Role>
      <ShortName>Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>9955555 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails</Role>
      <ShortName>Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>9955556 - Disclosure - Commitments and Contingencies - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails</Role>
      <ShortName>Commitments and Contingencies - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>9955557 - Disclosure - Commitments and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails</Role>
      <ShortName>Commitments and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>9955558 - Disclosure - Commitments and Contingencies - Lease Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails</Role>
      <ShortName>Commitments and Contingencies - Lease Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>9955559 - Disclosure - Commitments and Contingencies - Other Lease Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails</Role>
      <ShortName>Commitments and Contingencies - Other Lease Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>9955560 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails</Role>
      <ShortName>Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>9955561 - Disclosure - Debt - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DebtNarrativeDetails</Role>
      <ShortName>Debt - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>9955562 - Disclosure - Debt - Schedule of Long-Term Debt Instruments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails</Role>
      <ShortName>Debt - Schedule of Long-Term Debt Instruments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>9955563 - Disclosure - Debt - Schedule of Maturities of Long-Term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails</Role>
      <ShortName>Debt - Schedule of Maturities of Long-Term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>9955564 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</ParentRole>
      <Position>85</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>9955565 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Concentration Risk (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>9955566 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails</Role>
      <ShortName>Segment, Geographical and Other Revenue Information - Revenues (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables</ParentRole>
      <Position>87</Position>
    </Report>
    <Report instance="cdxs-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>9955567 - Disclosure - Restructuring Charges (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.codexis.com/role/RestructuringChargesDetails</Role>
      <ShortName>Restructuring Charges (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.codexis.com/role/RestructuringCharges</ParentRole>
      <Position>88</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="cdxs-20241231.htm">cdxs-20241231.htm</File>
    <File>cdxs-20241231.xsd</File>
    <File>cdxs-20241231_cal.xml</File>
    <File>cdxs-20241231_def.xml</File>
    <File>cdxs-20241231_lab.xml</File>
    <File>cdxs-20241231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>cdxs-20241231_g1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1234">http://fasb.org/us-gaap/2024</BaseTaxonomy>
    <BaseTaxonomy items="15">http://xbrl.sec.gov/cyd/2024</BaseTaxonomy>
    <BaseTaxonomy items="38">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
    <BaseTaxonomy items="5">http://xbrl.sec.gov/ecd/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>113
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "cdxs-20241231.htm": {
   "nsprefix": "cdxs",
   "nsuri": "http://www.codexis.com/20241231",
   "dts": {
    "inline": {
     "local": [
      "cdxs-20241231.htm"
     ]
    },
    "schema": {
     "local": [
      "cdxs-20241231.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-af-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-af-sub-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "cdxs-20241231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cdxs-20241231_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "cdxs-20241231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cdxs-20241231_pre.xml"
     ]
    }
   },
   "keyStandard": 418,
   "keyCustom": 67,
   "axisStandard": 40,
   "axisCustom": 0,
   "memberStandard": 64,
   "memberCustom": 72,
   "hidden": {
    "total": 10,
    "http://fasb.org/us-gaap/2024": 6,
    "http://xbrl.sec.gov/dei/2024": 4
   },
   "contextCount": 381,
   "entityCount": 1,
   "segmentCount": 145,
   "elementCount": 905,
   "unitCount": 14,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2024": 1234,
    "http://xbrl.sec.gov/dei/2024": 38,
    "http://xbrl.sec.gov/cyd/2024": 15,
    "http://xbrl.sec.gov/ecd/2024": 5
   },
   "report": {
    "R1": {
     "role": "http://www.codexis.com/role/CoverPage",
     "longName": "0000001 - Document - Cover Page",
     "shortName": "Cover Page",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.codexis.com/role/AuditInformation",
     "longName": "0000002 - Document - Audit Information",
     "shortName": "Audit Information",
     "isDefault": "false",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.codexis.com/role/ConsolidatedBalanceSheets",
     "longName": "9952151 - Statement - Consolidated Balance Sheets",
     "shortName": "Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:RestrictedCash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical",
     "longName": "9952152 - Statement - Consolidated Balance Sheets (Parenthetical)",
     "shortName": "Consolidated Balance Sheets (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
     "longName": "9952153 - Statement - Consolidated Statements of Operations",
     "shortName": "Consolidated Statements of Operations",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
     "longName": "9952154 - Statement - Consolidated Statements of Operations (Parenthetical)",
     "shortName": "Consolidated Statements of Operations (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-20",
      "name": "us-gaap:OtherNonoperatingIncomeExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss",
     "longName": "9952155 - Statement - Condensed Consolidated Statements of Comprehensive Loss",
     "shortName": "Condensed Consolidated Statements of Comprehensive Loss",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R8": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
     "longName": "9952156 - Statement - Consolidated Statements of Stockholders' Equity",
     "shortName": "Consolidated Statements of Stockholders' Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c-23",
      "name": "us-gaap:SharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-23",
      "name": "us-gaap:SharesOutstanding",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical",
     "longName": "9952157 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)",
     "shortName": "Consolidated Statements of Stockholders' Equity (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsOfStockIssuanceCosts",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R10": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
     "longName": "9952158 - Statement - Consolidated Statements of Cash Flows",
     "shortName": "Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DepreciationDepletionAndAmortization",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
     "longName": "9952159 - Statement - Consolidated Statements of Cash Flows (Parenthetical)",
     "shortName": "Consolidated Statements of Cash Flows (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherNoncashIncome",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-20",
      "name": "us-gaap:OtherNoncashIncome",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.codexis.com/role/DescriptionofBusiness",
     "longName": "9952160 - Disclosure - Description of Business",
     "shortName": "Description of Business",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NatureOfOperations",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies",
     "longName": "9952161 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.codexis.com/role/RevenueRecognition",
     "longName": "9952162 - Disclosure - Revenue Recognition",
     "shortName": "Revenue Recognition",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.codexis.com/role/NetLossperShare",
     "longName": "9952163 - Disclosure - Net Loss per Share",
     "shortName": "Net Loss per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.codexis.com/role/CollaborativeArrangements",
     "longName": "9952164 - Disclosure - Collaborative Arrangements",
     "shortName": "Collaborative Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CollaborativeArrangementDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CollaborativeArrangementDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecurities",
     "longName": "9952165 - Disclosure - Investments in Non-Marketable Securities",
     "shortName": "Investments in Non-Marketable Securities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.codexis.com/role/FairValueMeasurements",
     "longName": "9952166 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueMeasurementInputsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueMeasurementInputsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.codexis.com/role/BalanceSheetDetails",
     "longName": "9952167 - Disclosure - Balance Sheet Details",
     "shortName": "Balance Sheet Details",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.codexis.com/role/StockbasedCompensation",
     "longName": "9952168 - Disclosure - Stock-based Compensation",
     "shortName": "Stock-based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.codexis.com/role/CapitalStock",
     "longName": "9952169 - Disclosure - Capital Stock",
     "shortName": "Capital Stock",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.codexis.com/role/A401kPlan",
     "longName": "9952170 - Disclosure - 401(k) Plan",
     "shortName": "401(k) Plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.codexis.com/role/IncomeTaxes",
     "longName": "9952171 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.codexis.com/role/CommitmentsandContingencies",
     "longName": "9952172 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.codexis.com/role/Debt",
     "longName": "9952173 - Disclosure - Debt",
     "shortName": "Debt",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation",
     "longName": "9952174 - Disclosure - Segment, Geographical and Other Revenue Information",
     "shortName": "Segment, Geographical and Other Revenue Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.codexis.com/role/RestructuringCharges",
     "longName": "9952175 - Disclosure - Restructuring Charges",
     "shortName": "Restructuring Charges",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R29": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "29",
     "firstAnchor": {
      "contextRef": "c-274",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-274",
      "name": "ecd:Rule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc",
     "longName": "995447 - Disclosure - Insider Trading Policies and Procedures",
     "shortName": "Insider Trading Policies and Procedures",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "30",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "ecd:InsiderTrdPoliciesProcAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "ecd:InsiderTrdPoliciesProcAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure",
     "longName": "995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure",
     "shortName": "Cybersecurity Risk Management and Strategy Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies",
     "longName": "9955511 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Policies)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables",
     "longName": "9955512 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies (Tables)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "33",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R34": {
     "role": "http://www.codexis.com/role/RevenueRecognitionTables",
     "longName": "9955513 - Disclosure - Revenue Recognition (Tables)",
     "shortName": "Revenue Recognition (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.codexis.com/role/NetLossperShareTables",
     "longName": "9955514 - Disclosure - Net Loss per Share (Tables)",
     "shortName": "Net Loss per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables",
     "longName": "9955515 - Disclosure - Investments in Non-Marketable Securities (Tables)",
     "shortName": "Investments in Non-Marketable Securities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.codexis.com/role/FairValueMeasurementsTables",
     "longName": "9955516 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsTables",
     "longName": "9955517 - Disclosure - Balance Sheet Details (Tables)",
     "shortName": "Balance Sheet Details (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.codexis.com/role/StockbasedCompensationTables",
     "longName": "9955518 - Disclosure - Stock-based Compensation (Tables)",
     "shortName": "Stock-based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.codexis.com/role/IncomeTaxesTables",
     "longName": "9955519 - Disclosure - Income Taxes (Tables)",
     "shortName": "Income Taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesTables",
     "longName": "9955520 - Disclosure - Commitments and Contingencies (Tables)",
     "shortName": "Commitments and Contingencies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.codexis.com/role/DebtTables",
     "longName": "9955521 - Disclosure - Debt (Tables)",
     "shortName": "Debt (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables",
     "longName": "9955522 - Disclosure - Segment, Geographical and Other Revenue Information (Tables)",
     "shortName": "Segment, Geographical and Other Revenue Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.codexis.com/role/DescriptionofBusinessDetails",
     "longName": "9955523 - Disclosure - Description of Business (Details)",
     "shortName": "Description of Business (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R45": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
     "longName": "9955524 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ShippingAndDistributionCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ShippingAndDistributionCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails",
     "longName": "9955525 - Disclosure - Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)",
     "shortName": "Basis of Presentation and Summary of Significant Accounting Policies - Property, Plant, and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "c-55",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-55",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
     "longName": "9955526 - Disclosure - Revenue Recognition - Disaggregation of Revenue (Details)",
     "shortName": "Revenue Recognition - Disaggregation of Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R48": {
     "role": "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails",
     "longName": "9955527 - Disclosure - Revenue Recognition - Contracts with Customer (Details)",
     "shortName": "Revenue Recognition - Contracts with Customer (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ContractWithCustomerAssetGrossCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:UnbilledContractsReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
     "longName": "9955528 - Disclosure - Revenue Recognition - Narrative (Details)",
     "shortName": "Revenue Recognition - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerAssetCreditLossExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "us-gaap:ContractWithCustomerAssetCreditLossExpense",
       "us-gaap:ContractWithCustomerAssetCreditLossExpense",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerAssetCreditLossExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "us-gaap:ContractWithCustomerAssetCreditLossExpense",
       "us-gaap:ContractWithCustomerAssetCreditLossExpense",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails",
     "longName": "9955529 - Disclosure - Revenue Recognition - Revenue Recognized (Details)",
     "shortName": "Revenue Recognition - Revenue Recognized (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails",
     "longName": "9955530 - Disclosure - Revenue Recognition - Performance Obligation (Details)",
     "shortName": "Revenue Recognition - Performance Obligation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "c-79",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-79",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.codexis.com/role/NetLossperShareDetails",
     "longName": "9955531 - Disclosure - Net Loss per Share (Details)",
     "shortName": "Net Loss per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
     "longName": "9955532 - Disclosure - Collaborative Arrangements - Narrative (Details)",
     "shortName": "Collaborative Arrangements - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-121",
      "name": "cdxs:RevenueRecognitionContingentReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
     "longName": "9955533 - Disclosure - Investments in Non-Marketable Securities - Narrative (Details)",
     "shortName": "Investments in Non-Marketable Securities - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsToAcquireOtherInvestments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-19",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
     "longName": "9955534 - Disclosure - Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)",
     "shortName": "Investments in Non-Marketable Securities - Carrying Value and Fair Value of Securities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-181",
      "name": "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails",
     "longName": "9955535 - Disclosure - Fair Value Measurements - Schedule of Cash, Cash Equivalents, and Short-Term Investments (Details)",
     "shortName": "Fair Value Measurements - Schedule of Cash, Cash Equivalents, and Short-Term Investments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:Cash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:Cash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails",
     "longName": "9955536 - Disclosure - Fair Value Measurements - Narrative (Details)",
     "shortName": "Fair Value Measurements - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "c-210",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-210",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails",
     "longName": "9955537 - Disclosure - Balance Sheet Details - Schedule of Inventory Components (Details)",
     "shortName": "Balance Sheet Details - Schedule of Inventory Components (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:InventoryRawMaterials",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:InventoryRawMaterials",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
     "longName": "9955538 - Disclosure - Balance Sheet Details - Narrative (Details)",
     "shortName": "Balance Sheet Details - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PrepaidExpenseCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PrepaidExpenseCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
     "longName": "9955539 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)",
     "shortName": "Balance Sheet Details - Property and Equipment, net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
     "longName": "9955540 - Disclosure - Balance Sheet Details - Schedule of Goodwill (Details)",
     "shortName": "Balance Sheet Details - Schedule of Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R62": {
     "role": "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails",
     "longName": "9955541 - Disclosure - Balance Sheet Details - Other Accrued Liabilities (Details)",
     "shortName": "Balance Sheet Details - Other Accrued Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R63": {
     "role": "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
     "longName": "9955542 - Disclosure - Stock-based Compensation - Narrative (Details)",
     "shortName": "Stock-based Compensation - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
     "longName": "9955543 - Disclosure - Stock-based Compensation - Stock-Based Compensation Expense (Details)",
     "shortName": "Stock-based Compensation - Stock-Based Compensation Expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-241",
      "name": "us-gaap:ShareBasedCompensation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R65": {
     "role": "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
     "longName": "9955544 - Disclosure - Stock-based Compensation - Assumptions Used (Details)",
     "shortName": "Stock-based Compensation - Assumptions Used (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "c-241",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-241",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails",
     "longName": "9955545 - Disclosure - Stock-based Compensation - Option Activity (Details)",
     "shortName": "Stock-based Compensation - Option Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-27",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R67": {
     "role": "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
     "longName": "9955546 - Disclosure - Stock-based Compensation - Award Activity (Details)",
     "shortName": "Stock-based Compensation - Award Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-279",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R68": {
     "role": "http://www.codexis.com/role/CapitalStockDetails",
     "longName": "9955547 - Disclosure - Capital Stock (Details)",
     "shortName": "Capital Stock (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "c-301",
      "name": "cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-301",
      "name": "cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R69": {
     "role": "http://www.codexis.com/role/A401kPlanDetails",
     "longName": "9955548 - Disclosure - 401(k) Plan (Details)",
     "shortName": "401(k) Plan (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "c-308",
      "name": "cdxs:DefinedContributionPlanParticipantEligibilityAge",
      "unitRef": "security",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-308",
      "name": "cdxs:DefinedContributionPlanParticipantEligibilityAge",
      "unitRef": "security",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R70": {
     "role": "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails",
     "longName": "9955549 - Disclosure - Income Taxes - Components of Loss Before Provision for Income Taxes (Details)",
     "shortName": "Income Taxes - Components of Loss Before Provision for Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R71": {
     "role": "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails",
     "longName": "9955550 - Disclosure - Income Taxes - Components of Provision for Income Taxes (Details)",
     "shortName": "Income Taxes - Components of Provision for Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentStateAndLocalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentStateAndLocalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R72": {
     "role": "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails",
     "longName": "9955551 - Disclosure - Income Taxes - Tax Rate Reconciliation (Details)",
     "shortName": "Income Taxes - Tax Rate Reconciliation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R73": {
     "role": "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails",
     "longName": "9955552 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)",
     "shortName": "Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://www.codexis.com/role/IncomeTaxesNarrativeDetails",
     "longName": "9955553 - Disclosure - Income Taxes - Narrative (Details)",
     "shortName": "Income Taxes - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R75": {
     "role": "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails",
     "longName": "9955554 - Disclosure - Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)",
     "shortName": "Income Taxes - NOL Carryforwards and Federal Research and Development Tax Credits (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "c-309",
      "name": "us-gaap:OperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-309",
      "name": "us-gaap:OperatingLossCarryforwards",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails",
     "longName": "9955555 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)",
     "shortName": "Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-27",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R77": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
     "longName": "9955556 - Disclosure - Commitments and Contingencies - Narrative (Details)",
     "shortName": "Commitments and Contingencies - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:AreaOfRealEstateProperty",
      "unitRef": "sqft",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:AssetRetirementObligation",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R78": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
     "longName": "9955557 - Disclosure - Commitments and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)",
     "shortName": "Commitments and Contingencies - Schedule of Right-of-use Assets and Lease Obligations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "c-5",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:OperatingLeaseRightOfUseAssetDueToLeaseModification",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R79": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails",
     "longName": "9955558 - Disclosure - Commitments and Contingencies - Lease Costs (Details)",
     "shortName": "Commitments and Contingencies - Lease Costs (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:FinanceLeaseCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:FinanceLeaseCost",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R80": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails",
     "longName": "9955559 - Disclosure - Commitments and Contingencies - Other Lease Information (Details)",
     "shortName": "Commitments and Contingencies - Other Lease Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeasePayments",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R81": {
     "role": "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
     "longName": "9955560 - Disclosure - Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)",
     "shortName": "Commitments and Contingencies - Maturity Analysis of Operating Lease (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R82": {
     "role": "http://www.codexis.com/role/DebtNarrativeDetails",
     "longName": "9955561 - Disclosure - Debt - Narrative (Details)",
     "shortName": "Debt - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:DebtInstrumentFaceAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cdxs:ClassOfWarrantOrRightFairValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R83": {
     "role": "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails",
     "longName": "9955562 - Disclosure - Debt - Schedule of Long-Term Debt Instruments (Details)",
     "shortName": "Debt - Schedule of Long-Term Debt Instruments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:DebtInstrumentFaceAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "cdxs:DebtInstrumentPaymentInKindInterest",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R84": {
     "role": "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails",
     "longName": "9955563 - Disclosure - Debt - Schedule of Maturities of Long-Term Debt (Details)",
     "shortName": "Debt - Schedule of Maturities of Long-Term Debt (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R85": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails",
     "longName": "9955564 - Disclosure - Segment, Geographical and Other Revenue Information - Narrative (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "85",
     "firstAnchor": {
      "contextRef": "c-19",
      "name": "cdxs:NumberOfBusinessSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:SegmentReportingPolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-19",
      "name": "cdxs:NumberOfBusinessSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "us-gaap:SegmentReportingPolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R86": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails",
     "longName": "9955565 - Disclosure - Segment, Geographical and Other Revenue Information - Concentration Risk (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Concentration Risk (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "86",
     "firstAnchor": {
      "contextRef": "c-342",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-342",
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R87": {
     "role": "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails",
     "longName": "9955566 - Disclosure - Segment, Geographical and Other Revenue Information - Revenues (Details)",
     "shortName": "Segment, Geographical and Other Revenue Information - Revenues (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "87",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-357",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-5",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    },
    "R88": {
     "role": "http://www.codexis.com/role/RestructuringChargesDetails",
     "longName": "9955567 - Disclosure - Restructuring Charges (Details)",
     "shortName": "Restructuring Charges (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "88",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringCharges",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-377",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cdxs-20241231.htm",
      "unique": true
     }
    }
   },
   "tag": {
    "cdxs_A200220PenobscotMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A200220PenobscotMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "200-220 Penobscot",
        "label": "200-220 Penobscot [Member]",
        "documentation": "200-220 Penobscot"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2019AmendedPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2019AmendedPlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2019 Amended Plan",
        "label": "2019 Amended Plan [Member]",
        "documentation": "2019 Amended Plan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2019And2024InducementPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2019And2024InducementPlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2019 and 2024 Inducement Plan",
        "label": "2019 And 2024 Inducement Plan [Member]",
        "documentation": "2019 And 2024 Inducement Plan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2019PlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2019PlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2019 Plan",
        "label": "2019 Plan [Member]",
        "documentation": "2019 Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022InducementPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2022InducementPlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 Inducement Plan",
        "label": "2022 Inducement Plan [Member]",
        "documentation": "2022 Inducement Plan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022PBOMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2022PBOMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 PBO",
        "label": "2022 PBO [Member]",
        "documentation": "2022 PBO"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022PSUAnd2022PBOMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2022PSUAnd2022PBOMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 PSU And 2022 PBO",
        "label": "2022 PSU And 2022 PBO [Member]",
        "documentation": "2022 PSU And 2022 PBO"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2022PSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2022PSUMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022 PSU",
        "label": "2022 PSU [Member]",
        "documentation": "2022 PSU"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A2024InducementPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A2024InducementPlanMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024 Inducement Plan",
        "label": "2024 Inducement Plan [Member]",
        "documentation": "2024 Inducement Plan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A400PenoscotMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A400PenoscotMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "400 Penoscot",
        "label": "400 Penoscot [Member]",
        "documentation": "400 Penoscot"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_A501ChesapeakeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "A501ChesapeakeMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "501 Chesapeake",
        "label": "501 Chesapeake [Member]",
        "documentation": "501 Chesapeake"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Abstract]",
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_AccountingPoliciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "AccountingPoliciesLineItems",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Line Items]",
        "label": "Accounting Policies [Line Items]",
        "documentation": "Accounting Policies"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_AccountingPoliciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "AccountingPoliciesTable",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounting Policies [Table]",
        "label": "Accounting Policies [Table]",
        "documentation": "Accounting Policies"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsNotesAndLoansReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsNotesAndLoansReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total financial assets, net",
        "label": "Accounts and Financing Receivable, after Allowance for Credit Loss, Current",
        "documentation": "Amount, after allowance for credit loss, of accounts and financing receivables, classified as current. Includes, but is not limited to, notes and loan receivable."
       }
      }
     },
     "auth_ref": [
      "r1228"
     ]
    },
    "us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable Type [Axis]",
        "label": "Receivable Type [Axis]",
        "documentation": "Information by type of receivable."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r88"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r1031"
     ]
    },
    "us-gaap_AccountsReceivableGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableGrossCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable",
        "label": "Accounts Receivable, before Allowance for Credit Loss, Current",
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current."
       }
      }
     },
     "auth_ref": [
      "r193",
      "r310",
      "r960"
     ]
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r939"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other accrued liabilities",
        "totalLabel": "Total other accrued liabilities",
        "label": "Accrued Liabilities, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "us-gaap_AccruedProfessionalFeesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedProfessionalFeesCurrentAndNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued professional and outside service fees",
        "label": "Accrued Professional Fees",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received."
       }
      }
     },
     "auth_ref": [
      "r138"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less: accumulated depreciation",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r185",
      "r779"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive income",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r20",
      "r92",
      "r196",
      "r774",
      "r817",
      "r818"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income (Loss)",
        "label": "AOCI Attributable to Parent [Member]",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r10",
      "r20",
      "r638",
      "r641",
      "r688",
      "r813",
      "r814",
      "r1204",
      "r1205",
      "r1206",
      "r1216",
      "r1217",
      "r1218",
      "r1219"
     ]
    },
    "cdxs_AcquisitionAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "AcquisitionAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition Agreement",
        "label": "Acquisition Agreement [Member]",
        "documentation": "Acquisition Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional 402(v) Disclosure",
        "label": "Additional 402(v) Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1112"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital",
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r1031",
      "r1381"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Paid-in Capital",
        "label": "Additional Paid-in Capital [Member]",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r832",
      "r1216",
      "r1217",
      "r1218",
      "r1219",
      "r1314",
      "r1382"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation, Amount",
        "label": "Adjustment to Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation:",
        "label": "Adjustment to Compensation [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote",
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment To PEO Compensation, Footnote",
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards",
        "label": "Share-Based Payment Arrangement, Decrease for Tax Withholding Obligation",
        "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r58",
      "r536"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalWarrantIssued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalWarrantIssued",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock warrants in connection with debt issuance",
        "label": "Adjustments to Additional Paid in Capital, Warrant Issued",
        "documentation": "Amount of increase in additional paid in capital (APIC) resulting from the issuance of warrants. Includes allocation of proceeds of debt securities issued with detachable stock purchase warrants."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r47",
      "r126"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Adjustments to reconcile net loss to net cash provided by (used in) operating activities:",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising",
        "label": "Advertising Cost [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r158"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising expense",
        "label": "Advertising Expense",
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line."
       }
      }
     },
     "auth_ref": [
      "r579",
      "r1014"
     ]
    },
    "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table",
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r1170"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Amount",
        "label": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1083",
      "r1094",
      "r1104",
      "r1137"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined",
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1086",
      "r1097",
      "r1107",
      "r1140"
     ]
    },
    "ecd_AggtPnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtPnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Pension Adjustments Service Cost",
        "label": "Aggregate Pension Adjustments Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r1171"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Adjustments to Compensation",
        "label": "All Adjustments to Compensation [Member]"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Executive Categories",
        "label": "All Executive Categories [Member]"
       }
      }
     },
     "auth_ref": [
      "r1132"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Individuals",
        "label": "All Individuals [Member]"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1132",
      "r1141",
      "r1145",
      "r1153"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Trading Arrangements",
        "label": "All Trading Arrangements [Member]"
       }
      }
     },
     "auth_ref": [
      "r1151"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based payment arrangement, expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r568",
      "r577"
     ]
    },
    "us-gaap_AllowanceForNotesAndLoansReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForNotesAndLoansReceivableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AccountsNotesAndLoansReceivableNetCurrent",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less: allowances",
        "label": "Financing Receivable, Allowance for Credit Loss, Current",
        "documentation": "Amount of allowance for credit loss on financing receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r311",
      "r354"
     ]
    },
    "cdxs_AllowanceForTenantImprovements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "AllowanceForTenantImprovements",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for tenant improvements",
        "label": "Allowance For Tenant Improvements",
        "documentation": "Allowance For Tenant Improvements"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "srt_AmericasMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "AmericasMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Americas [Member]",
        "terseLabel": "Americas",
        "label": "Americas [Member]"
       }
      }
     },
     "auth_ref": [
      "r1384",
      "r1385",
      "r1386",
      "r1387"
     ]
    },
    "cdxs_AmortizationOfDiscountOnShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "AmortizationOfDiscountOnShortTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of discount on short-term investments",
        "label": "Amortization Of Discount On Short-term Investments",
        "documentation": "Amortization Of Discount On Short-term Investments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfFinancingCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfFinancingCosts",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-cash interest expense",
        "label": "Amortization of Debt Issuance Costs",
        "documentation": "Amount of amortization expense attributable to debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r462",
      "r1209",
      "r1326"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total shares excluded as anti-dilutive (in shares)",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r258"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities [Axis]",
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities, Name [Domain]",
        "label": "Antidilutive Securities, Name [Domain]",
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_AreaOfRealEstateProperty": {
     "xbrltype": "areaItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AreaOfRealEstateProperty",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Area of real estate property (in square feet)",
        "label": "Area of Real Estate Property",
        "documentation": "Area of a real estate property."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ArrangementsAndNonarrangementTransactionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ArrangementsAndNonarrangementTransactionsMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arrangements and Non-arrangement Transactions [Domain]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]",
        "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r632"
     ]
    },
    "cdxs_ArzedaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ArzedaMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arzeda",
        "label": "Arzeda [Member]",
        "documentation": "Arzeda"
       }
      }
     },
     "auth_ref": []
    },
    "srt_AsiaPacificMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "AsiaPacificMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Asia Pacific [Member]",
        "terseLabel": "APAC",
        "label": "Asia Pacific [Member]"
       }
      }
     },
     "auth_ref": [
      "r1384",
      "r1385",
      "r1386",
      "r1387"
     ]
    },
    "us-gaap_AssetImpairmentCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetImpairmentCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Asset impairment and other charges",
        "terseLabel": "Asset impairment and other charges",
        "label": "Asset Impairment Charges",
        "documentation": "Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r43"
     ]
    },
    "us-gaap_AssetRetirementObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetRetirementObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset retirement obligation",
        "label": "Asset Retirement Obligation",
        "documentation": "The carrying amount of a liability for an asset retirement obligation. An asset retirement obligation is a legal obligation associated with the disposal or retirement of a tangible long-lived asset that results from the acquisition, construction or development, or the normal operations of a long-lived asset, except for certain obligations of lessees."
       }
      }
     },
     "auth_ref": [
      "r407",
      "r408"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r135",
      "r149",
      "r188",
      "r227",
      "r262",
      "r270",
      "r295",
      "r299",
      "r348",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r633",
      "r635",
      "r662",
      "r768",
      "r875",
      "r975",
      "r976",
      "r1031",
      "r1061",
      "r1263",
      "r1264",
      "r1333"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Assets",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r202",
      "r227",
      "r348",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r633",
      "r635",
      "r662",
      "r1031",
      "r1263",
      "r1264",
      "r1333"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://www.codexis.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Firm ID",
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1090"
     ]
    },
    "cdxs_AuditorInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "AuditorInformationAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Information [Abstract]",
        "documentation": "Auditor Information"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorLocation",
     "presentation": [
      "http://www.codexis.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Location",
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1090"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorName",
     "presentation": [
      "http://www.codexis.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Name",
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1090"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized Gains",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax",
        "documentation": "Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r316"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Unrealized Losses",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax",
        "documentation": "Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r317"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": "cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Amortized Cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r313",
      "r371",
      "r767"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesGrossUnrealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesGrossUnrealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other-than-temporary impairment losses",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss",
        "documentation": "Amount of unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r1230"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value",
        "label": "Debt Securities, Available-for-Sale",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r314",
      "r371",
      "r649",
      "r761",
      "r1017",
      "r1022",
      "r1229",
      "r1318",
      "r1319",
      "r1320"
     ]
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise Price",
        "label": "Award Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r1148"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value as of Grant Date",
        "label": "Award Grant Date Fair Value"
       }
      }
     },
     "auth_ref": [
      "r1149"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing, How MNPI Considered",
        "label": "Award Timing, How MNPI Considered [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Method",
        "label": "Award Timing Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Considered",
        "label": "Award Timing MNPI Considered [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Disclosure",
        "label": "Award Timing MNPI Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Predetermined",
        "label": "Award Timing Predetermined [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type [Axis]",
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Securities",
        "label": "Award Underlying Securities Amount"
       }
      }
     },
     "auth_ref": [
      "r1147"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1146"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures",
        "label": "Awards Close in Time to MNPI Disclosures [Table]"
       }
      }
     },
     "auth_ref": [
      "r1145"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table",
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1145"
     ]
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BalanceSheetLocationAxis",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Location [Axis]",
        "label": "Statement of Financial Position Location, Balance [Axis]",
        "documentation": "Information by location in statement of financial position where disaggregated cumulative balance has been reported."
       }
      }
     },
     "auth_ref": [
      "r406",
      "r1348",
      "r1349"
     ]
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BalanceSheetLocationDomain",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Location [Domain]",
        "label": "Statement of Financial Position Location, Balance [Domain]",
        "documentation": "Location in statement of financial position where disaggregated cumulative balance has been reported."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r60",
      "r406",
      "r1348",
      "r1349"
     ]
    },
    "us-gaap_BalanceSheetRelatedDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BalanceSheetRelatedDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet [Abstract]",
        "label": "Balance Sheet Related Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basis of Presentation and Principles of Consolidation",
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)."
       }
      }
     },
     "auth_ref": []
    },
    "country_CH": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "CH",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SWITZERLAND",
        "label": "SWITZERLAND"
       }
      }
     },
     "auth_ref": []
    },
    "country_CN": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "CN",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "CHINA",
        "label": "CHINA"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CantorMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CantorMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cantor",
        "label": "Cantor [Member]",
        "documentation": "Cantor"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CantorSalesAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CantorSalesAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cantor Sales Agreement",
        "label": "Cantor Sales Agreement [Member]",
        "documentation": "Cantor Sales Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalExpendituresIncurredButNotYetPaid": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CapitalExpendituresIncurredButNotYetPaid",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital expenditures incurred but not yet paid",
        "label": "Capital Expenditures Incurred but Not yet Paid",
        "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r30",
      "r31"
     ]
    },
    "us-gaap_Cash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Cash",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": "us-gaap_CashCashEquivalentsAndShortTermInvestments",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash",
        "label": "Cash",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r153",
      "r771",
      "r843",
      "r870",
      "r1031",
      "r1061",
      "r1194"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash reconciliation:",
        "label": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and cash equivalents",
        "netLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r183",
      "r958"
     ]
    },
    "us-gaap_CashAndCashEquivalentsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsLineItems",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Line Items]",
        "label": "Cash and Cash Equivalents [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents [Member]",
        "documentation": "Currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Restricted Cash",
        "label": "Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r134"
     ]
    },
    "us-gaap_CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents, Unrestricted Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents with respect to unrestricted balances."
       }
      }
     },
     "auth_ref": [
      "r27"
     ]
    },
    "us-gaap_CashCashEquivalentsAndShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsAndShortTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash, cash equivalents, and short-term investments",
        "totalLabel": "Total",
        "label": "Cash, Cash Equivalents, and Short-Term Investments",
        "documentation": "Cash includes currency on hand as well as demand deposits with banks or financial institutions. It also includes other kinds of accounts that have the general characteristics of demand deposits in that the customer may deposit additional funds at any time and effectively may withdraw funds at any time without prior notice or penalty. Cash equivalents, excluding items classified as marketable securities, include short-term, highly liquid Investments that are both readily convertible to known amounts of cash, and so near their maturity that they present minimal risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify under that definition. Original maturity means original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three years ago does not become a cash equivalent when its remaining maturity is three months. Short-term investments, exclusive of cash equivalents, generally consist of marketable securities intended to be sold within one year (or the normal operating cycle if longer) and may include trading securities, available-for-sale securities, or held-to-maturity securities (if maturing within one year), as applicable."
       }
      }
     },
     "auth_ref": [
      "r1203"
     ]
    },
    "cdxs_CashCashEquivalentsAndShortTermInvestmentsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CashCashEquivalentsAndShortTermInvestmentsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total",
        "label": "Cash, Cash Equivalents And Short Term Investments, Amortized Cost",
        "documentation": "Cash, Cash Equivalents And Short Term Investments, Amortized Cost"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash, cash equivalents and restricted cash at the beginning of the year",
        "periodEndLabel": "Cash, cash equivalents and restricted cash at the end of the year",
        "totalLabel": "Total cash, cash equivalents and restricted cash at the end of the period",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r105",
      "r224"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net decrease in cash, cash equivalents and restricted cash",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r105"
     ]
    },
    "cdxs_CashDepositMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CashDepositMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash Deposit",
        "label": "Cash Deposit [Member]",
        "documentation": "Cash Deposit"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CashPaidAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CashPaidAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid:",
        "label": "Cash Paid [Abstract]",
        "documentation": "Cash Paid"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ChangeInContractWithCustomerAssetAndLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ChangeInContractWithCustomerAssetAndLiabilityAbstract",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amounts included in contract liabilities at the beginning of the period:",
        "label": "Change in Contract with Customer, Asset and Liability [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ChangeInContractWithCustomerLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ChangeInContractWithCustomerLiabilityAbstract",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the period:",
        "label": "Change in Contract with Customer, Liability [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changed Peer Group, Footnote",
        "label": "Changed Peer Group, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1123"
     ]
    },
    "cdxs_ChesapeakeSpaceFiveYearRenewalOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ChesapeakeSpaceFiveYearRenewalOptionMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Chesapeake Space, Five Year Renewal Option",
        "label": "Chesapeake Space, Five Year Renewal Option [Member]",
        "documentation": "Chesapeake Space, Five Year Renewal Option"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year",
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1120"
     ]
    },
    "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested",
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]"
       }
      }
     },
     "auth_ref": [
      "r1118"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfStockDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Domain]",
        "label": "Class of Stock [Domain]",
        "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r190",
      "r191",
      "r192",
      "r227",
      "r252",
      "r253",
      "r255",
      "r257",
      "r264",
      "r265",
      "r348",
      "r431",
      "r433",
      "r434",
      "r435",
      "r438",
      "r439",
      "r472",
      "r473",
      "r476",
      "r479",
      "r487",
      "r662",
      "r826",
      "r827",
      "r828",
      "r829",
      "r832",
      "r833",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841",
      "r842",
      "r844",
      "r862",
      "r884",
      "r902",
      "r930",
      "r931",
      "r932",
      "r933",
      "r934",
      "r1175",
      "r1211",
      "r1220"
     ]
    },
    "us-gaap_ClassOfStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfStockLineItems",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Line Items]",
        "label": "Class of Stock [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r190",
      "r191",
      "r192",
      "r264",
      "r472",
      "r473",
      "r474",
      "r476",
      "r479",
      "r485",
      "r487",
      "r826",
      "r827",
      "r828",
      "r829",
      "r996",
      "r1175",
      "r1211"
     ]
    },
    "us-gaap_ClassOfWarrantOrRightAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfWarrantOrRightAxis",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Warrant or Right [Axis]",
        "label": "Class of Warrant or Right [Axis]",
        "documentation": "Information by type of warrant or right issued."
       }
      }
     },
     "auth_ref": [
      "r54"
     ]
    },
    "us-gaap_ClassOfWarrantOrRightDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfWarrantOrRightDomain",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Warrant or Right [Domain]",
        "label": "Class of Warrant or Right [Domain]",
        "documentation": "Name of the class or type of warrant or right outstanding. Warrants and rights represent derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of warrant or right, exercise price of warrants or rights (in dollars per share)",
        "label": "Class of Warrant or Right, Exercise Price of Warrants or Rights",
        "documentation": "Exercise price per share or per unit of warrants or rights outstanding."
       }
      }
     },
     "auth_ref": [
      "r488"
     ]
    },
    "cdxs_ClassOfWarrantOrRightFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ClassOfWarrantOrRightFairValue",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of warrant or right, fair value",
        "label": "Class Of Warrant Or Right, Fair Value",
        "documentation": "Class Of Warrant Or Right, Fair Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of warrant or right, number of securities called by warrants or rights (in shares)",
        "label": "Class of Warrant or Right, Number of Securities Called by Warrants or Rights",
        "documentation": "Number of securities into which the class of warrant or right may be converted. For example, but not limited to, 500,000 warrants may be converted into 1,000,000 shares."
       }
      }
     },
     "auth_ref": [
      "r488"
     ]
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Amount",
        "label": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r1124"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Name",
        "label": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r1124"
     ]
    },
    "cdxs_CollaborativeArrangementConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CollaborativeArrangementConcentrationRiskMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangement Concentration Risk",
        "label": "Collaborative Arrangement Concentration Risk [Member]",
        "documentation": "Collaborative Arrangement Concentration Risk"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CollaborativeArrangementDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CollaborativeArrangementDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangements",
        "label": "Collaborative Arrangement Disclosure [Text Block]",
        "documentation": "The entire disclosure for collaborative arrangements in which the entity is a participant, including a) information about the nature and purpose of such arrangements; b) its rights and obligations thereunder; c) the accounting policy for collaborative arrangements; and d) the income statement classification and amounts attributable to transactions arising from the collaborative arrangement between participants."
       }
      }
     },
     "auth_ref": [
      "r157",
      "r160",
      "r173"
     ]
    },
    "cdxs_CollaborativeArrangementUpfrontFeeAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CollaborativeArrangementUpfrontFeeAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative arrangement, upfront fee amount",
        "label": "Collaborative Arrangement, Upfront Fee Amount",
        "documentation": "Collaborative Arrangement, Upfront Fee Amount"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collaborative Arrangements and Non-collaborative Arrangement Transactions [Line Items]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r632"
     ]
    },
    "us-gaap_CommercialPaperMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommercialPaperMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial paper",
        "label": "Commercial Paper [Member]",
        "documentation": "Unsecured promissory note (generally negotiable) that provides institutions with short-term funds."
       }
      }
     },
     "auth_ref": [
      "r119",
      "r430",
      "r1055",
      "r1056",
      "r1057",
      "r1058"
     ]
    },
    "cdxs_CommercializationAndEnzymeSupplyAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CommercializationAndEnzymeSupplyAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercialization And Enzyme Supply Agreement",
        "label": "Commercialization And Enzyme Supply Agreement [Member]",
        "documentation": "Commercialization And Enzyme Supply Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Commitments and contingencies (Note 13)",
        "label": "Commitments and Contingencies",
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r140",
      "r770",
      "r861"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]",
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r421",
      "r422",
      "r940",
      "r1249",
      "r1255"
     ]
    },
    "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockCapitalSharesReservedForFutureIssuance",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares reserved for future issuance (in shares)",
        "label": "Common Stock, Capital Shares Reserved for Future Issuance",
        "documentation": "Aggregate number of common shares reserved for future issuance."
       }
      }
     },
     "auth_ref": [
      "r81"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r1051",
      "r1052",
      "r1053",
      "r1055",
      "r1056",
      "r1057",
      "r1058",
      "r1216",
      "r1217",
      "r1219",
      "r1314",
      "r1380",
      "r1382"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, par value (in dollars per share)",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r81"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares authorized (in shares)",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r862"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares issued (in shares)",
        "label": "Common Stock, Shares, Issued",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r81"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Common stock, shares outstanding (in shares)",
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r81",
      "r862",
      "r881",
      "r1382",
      "r1383"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Common stock, $0.0001 par value per share; 200,000 shares authorized; 81,850 and 69,905 shares issued and outstanding at December\u00a031, 2024 and December\u00a031, 2023, respectively",
        "label": "Common Stock, Value, Issued",
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r773",
      "r1031"
     ]
    },
    "cdxs_CommonStockWarrantsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CommonStockWarrantsMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock Warrants",
        "label": "Common Stock Warrants [Member]",
        "documentation": "Common Stock Warrants"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure",
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1129"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Net Income",
        "label": "Compensation Actually Paid vs. Net Income [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1128"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Other Measure",
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1130"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return",
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1127"
     ]
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Benefits [Abstract]",
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Deferred Tax Assets and Liabilities [Abstract]",
        "label": "Components of Deferred Tax Assets and Liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComponentsOfIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "label": "Components of Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Comprehensive loss",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r208",
      "r210",
      "r215",
      "r762",
      "r785",
      "r786"
     ]
    },
    "cdxs_ComputerEquipmentAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ComputerEquipmentAndSoftwareMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer equipment and software",
        "label": "Computer Equipment and Software [Member]",
        "documentation": "Computer Equipment and Software [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComputerEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComputerEquipmentMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer equipment",
        "label": "Computer Equipment [Member]",
        "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Domain]",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r61",
      "r62",
      "r307",
      "r939"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Axis]",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r61",
      "r62",
      "r307",
      "r820",
      "r939"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Axis]",
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r61",
      "r62",
      "r307",
      "r939",
      "r1182"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Credit Risk",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for credit risk."
       }
      }
     },
     "auth_ref": [
      "r65",
      "r162"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Line Items]",
        "label": "Concentration Risk [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r939"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration risk, percentage",
        "verboseLabel": "Concentration risk, percentage",
        "label": "Concentration Risk, Percentage",
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r61",
      "r62",
      "r307"
     ]
    },
    "cdxs_ConcentrationRiskSupplyRiskPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ConcentrationRiskSupplyRiskPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Supply Risk",
        "label": "Concentration Risk, Supply Risk [Policy Text Block]",
        "documentation": "Concentration Risk, Supply Risk [Policy Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r34",
      "r35",
      "r36",
      "r61",
      "r133",
      "r939"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Domain]",
        "label": "Concentration Risk Type [Domain]",
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r35",
      "r61",
      "r62",
      "r307",
      "r939"
     ]
    },
    "us-gaap_ConstructionInProgressMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConstructionInProgressMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Construction in progress",
        "label": "Construction in Progress [Member]",
        "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Contract with Customer",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability."
       }
      }
     },
     "auth_ref": [
      "r1270"
     ]
    },
    "us-gaap_ContractWithCustomerAssetCreditLossExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetCreditLossExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment charges related to contract assets",
        "label": "Contract with Customer, Asset, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r358",
      "r509",
      "r998"
     ]
    },
    "us-gaap_ContractWithCustomerAssetGrossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetGrossCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract assets",
        "verboseLabel": "Contract assets",
        "label": "Contract with Customer, Asset, before Allowance for Credit Loss, Current",
        "documentation": "Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1268",
      "r1269"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract liabilities: deferred revenue",
        "label": "Contract with Customer, Liability",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r490",
      "r491",
      "r511"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total revenues",
        "label": "Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized",
        "documentation": "Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied."
       }
      }
     },
     "auth_ref": [
      "r999"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods",
        "label": "Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price",
        "documentation": "Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in estimate of transaction price which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due. Includes, but is not limited to, change in assessment of whether estimate of variable consideration is constrained."
       }
      }
     },
     "auth_ref": [
      "r997"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r490",
      "r491",
      "r511"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred revenue, net of current portion",
        "label": "Contract with Customer, Liability, Noncurrent",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r490",
      "r491",
      "r511"
     ]
    },
    "cdxs_ContractWithCustomerLiabilityPortionOfRetainerFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractWithCustomerLiabilityPortionOfRetainerFee",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, portion of retainer fee",
        "label": "Contract With Customer, Liability, Portion Of Retainer Fee",
        "documentation": "Contract With Customer, Liability, Portion Of Retainer Fee"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerLiabilityRetainerFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractWithCustomerLiabilityRetainerFee",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, retainer fee",
        "label": "Contract With Customer, Liability, Retainer Fee",
        "documentation": "Contract With Customer, Liability, Retainer Fee"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerLiabilityRetainerFeeCreditablePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractWithCustomerLiabilityRetainerFeeCreditablePercentage",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, retainer fee, creditable percentage",
        "label": "Contract With Customer, Liability, Retainer Fee, Creditable Percentage",
        "documentation": "Contract With Customer, Liability, Retainer Fee, Creditable Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with customer, liability, retainer fee, non-creditable percentage",
        "label": "Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage",
        "documentation": "Contract With Customer, Liability, Retainer Fee, Non-Creditable Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance obligations satisfied",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due."
       }
      }
     },
     "auth_ref": [
      "r512"
     ]
    },
    "cdxs_ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognized, including opening balance",
        "label": "Contract with Customer, Liability, Revenue Recognized, Including Opening Balance",
        "documentation": "Contract with Customer, Liability, Revenue Recognized, Including Opening Balance"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractWithCustomerSalesMilestone": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractWithCustomerSalesMilestone",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate commercial sales, milestone",
        "label": "Contract With Customer, Sales Milestone",
        "documentation": "Contract With Customer, Sales Milestone"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails": {
       "parentTag": "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionRevenueRecognizedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance obligations satisfied from new activities in the period - contract revenue",
        "label": "Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition",
        "documentation": "Contract with Customer, Liability, New Activities, Performance Obligation Satisfied, Revenue Recognition"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConvertibleDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConvertibleDebtMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Convertible Debt",
        "label": "Convertible Debt [Member]",
        "documentation": "Borrowing which can be exchanged for a specified number of another security at the option of the issuer or the holder, for example, but not limited to, the entity's common stock."
       }
      }
     },
     "auth_ref": [
      "r120",
      "r441",
      "r442",
      "r452",
      "r453",
      "r454",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995"
     ]
    },
    "us-gaap_ConvertiblePreferredStockSharesIssuedUponConversion": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConvertiblePreferredStockSharesIssuedUponConversion",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Convertible preferred stock, shares issued upon conversion (in shares)",
        "label": "Convertible Preferred Stock, Shares Issued upon Conversion",
        "documentation": "Number of shares issued for each share of convertible preferred stock that is converted."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r50",
      "r80",
      "r124",
      "r482"
     ]
    },
    "us-gaap_CorporateDebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CorporateDebtSecuritiesMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate debt",
        "label": "Corporate Debt Securities [Member]",
        "documentation": "Debt securities issued by domestic or foreign corporate business, banks and other entities with a promise of repayment."
       }
      }
     },
     "auth_ref": [
      "r1007",
      "r1009",
      "r1017",
      "r1032",
      "r1049",
      "r1377"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of product revenue",
        "label": "Cost of Goods and Services Sold",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r96",
      "r729"
     ]
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Costs of product revenue",
        "label": "Cost of Sales [Member]",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostsAndExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostsAndExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total costs and operating expenses",
        "label": "Costs and Expenses",
        "documentation": "Total costs of sales and operating expenses for the period."
       }
      }
     },
     "auth_ref": [
      "r101"
     ]
    },
    "cdxs_CostsIncurredInConnectionWithEquitySalesAgreements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CostsIncurredInConnectionWithEquitySalesAgreements",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Costs incurred in connection with equity sales agreements",
        "label": "Costs Incurred In Connection With Equity Sales Agreements",
        "documentation": "Costs Incurred In Connection With Equity Sales Agreements"
       }
      }
     },
     "auth_ref": []
    },
    "srt_CounterpartyNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "CounterpartyNameAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name [Axis]",
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r232",
      "r233",
      "r444",
      "r474",
      "r692",
      "r709",
      "r766",
      "r962",
      "r964"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility [Axis]",
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r430",
      "r1261"
     ]
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Facility [Domain]",
        "label": "Credit Facility [Domain]",
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r430",
      "r1261",
      "r1262"
     ]
    },
    "us-gaap_CreditLossFinancialInstrumentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CreditLossFinancialInstrumentPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Assets and Allowances",
        "label": "Credit Loss, Financial Instrument [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security. Includes, but is not limited to, methodology used to estimate allowance for credit loss, how writeoff of uncollectible amount is recognized, and determination of past due status and nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r352",
      "r353",
      "r355",
      "r356",
      "r359",
      "r361",
      "r362",
      "r363",
      "r364",
      "r367",
      "r368",
      "r369",
      "r370",
      "r372",
      "r373",
      "r374",
      "r376"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentForeignTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Current Foreign Tax Expense (Benefit)",
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r1184",
      "r1214"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current provision",
        "label": "Current Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r616",
      "r1214"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current provision:",
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Current State and Local Tax Expense (Benefit)",
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1184",
      "r1214",
      "r1309"
     ]
    },
    "cdxs_CustomerAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerAMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer A",
        "label": "Customer A [Member]",
        "documentation": "Customer A"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerBMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerBMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer B",
        "label": "Customer B [Member]",
        "documentation": "Customer B"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerCMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerCMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer C",
        "label": "Customer C [Member]",
        "documentation": "Customer C"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Concentration Risk",
        "label": "Customer Concentration Risk [Member]",
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r307"
     ]
    },
    "cdxs_CustomerDMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerDMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer D",
        "label": "Customer D [Member]",
        "documentation": "Customer D"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerEMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerEMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer E",
        "label": "Customer E [Member]",
        "documentation": "Customer E"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerFMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerFMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer F",
        "label": "Customer F [Member]",
        "documentation": "Customer F"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerGMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerGMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer G",
        "label": "Customer G [Member]",
        "documentation": "Customer G"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerHMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerHMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer H",
        "label": "Customer H [Member]",
        "documentation": "Customer H"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_CustomerIMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "CustomerIMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer I",
        "label": "Customer I [Member]",
        "documentation": "Customer I"
       }
      }
     },
     "auth_ref": []
    },
    "cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1075",
      "r1164"
     ]
    },
    "cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardOfDirectorsOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board of Directors Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1075",
      "r1164"
     ]
    },
    "cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Expertise of Management Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1077",
      "r1166"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1077",
      "r1166"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1079",
      "r1168"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1077",
      "r1166"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1070",
      "r1159"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1071",
      "r1160"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1071",
      "r1160"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Abstract]"
       }
      }
     },
     "auth_ref": [
      "r1069",
      "r1158"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceLineItems",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1069",
      "r1158"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceTable",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Table]"
       }
      }
     },
     "auth_ref": [
      "r1069",
      "r1158"
     ]
    },
    "cyd_CybersecurityRiskManagementThirdPartyEngagedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementThirdPartyEngagedFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Third Party Engaged [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1072",
      "r1161"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1074",
      "r1163"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1074",
      "r1163"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1075",
      "r1164"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1078",
      "r1167"
     ]
    },
    "cyd_CybersecurityRiskRoleOfManagementTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskRoleOfManagementTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Role of Management [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1076",
      "r1165"
     ]
    },
    "cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1073",
      "r1162"
     ]
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/Debt"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt",
        "label": "Debt Disclosure [Text Block]",
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r225",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r429",
      "r430",
      "r440",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r456",
      "r463",
      "r464",
      "r466",
      "r670"
     ]
    },
    "cdxs_DebtInstrumentAmortizedExitFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentAmortizedExitFee",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails",
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Add: amortized exit fee",
        "label": "Debt Instrument, Amortized Exit Fee",
        "documentation": "Debt Instrument, Amortized Exit Fee"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument [Axis]",
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r69",
      "r70",
      "r136",
      "r139",
      "r234",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r447",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r1029",
      "r1212",
      "r1250",
      "r1251",
      "r1252",
      "r1325",
      "r1327"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis spread on variable rate",
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentCarryingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentCarryingAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total principal payments",
        "label": "Long-Term Debt, Gross",
        "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r139",
      "r467"
     ]
    },
    "cdxs_DebtInstrumentExitFeePercent": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentExitFeePercent",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, exit fee, percent",
        "label": "Debt Instrument, Exit Fee, Percent",
        "documentation": "Debt Instrument, Exit Fee, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentFaceAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentFaceAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Face value of debt",
        "label": "Debt Instrument, Face Amount",
        "documentation": "Face (par) amount of debt instrument at time of issuance."
       }
      }
     },
     "auth_ref": [
      "r441",
      "r670",
      "r671",
      "r992",
      "r993",
      "r1029"
     ]
    },
    "cdxs_DebtInstrumentFacilityFeePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentFacilityFeePercent",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, facility fee, percent",
        "label": "Debt Instrument, Facility Fee, Percent",
        "documentation": "Debt Instrument, Facility Fee, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_DebtInstrumentInterestPaidInKind": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentInterestPaidInKind",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, interest, paid in kind",
        "label": "Debt Instrument, Interest, Paid In Kind",
        "documentation": "Debt Instrument, Interest, Paid In Kind"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_DebtInstrumentInterestPayableTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentInterestPayableTerm",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, interest payable, term",
        "label": "Debt Instrument, Interest Payable, Term",
        "documentation": "Debt Instrument, Interest Payable, Term"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, interest rate, effective percentage",
        "label": "Debt Instrument, Interest Rate, Effective Percentage",
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r469",
      "r670",
      "r671",
      "r1029"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stated interest rate",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r442"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument [Line Items]",
        "label": "Debt Instrument [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r234",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r447",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r465",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r1029",
      "r1212",
      "r1325",
      "r1327"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Instrument, Name [Domain]",
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r234",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r447",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r1029",
      "r1212",
      "r1250",
      "r1251",
      "r1252",
      "r1325",
      "r1327"
     ]
    },
    "cdxs_DebtInstrumentNumberOfTranches": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentNumberOfTranches",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, number of tranches",
        "label": "Debt Instrument, Number of Tranches",
        "documentation": "Debt Instrument, Number of Tranches"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_DebtInstrumentPaymentInKindInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentPaymentInKindInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Add: payment in-kind interest",
        "label": "Debt Instrument, Payment In-kind Interest",
        "documentation": "Debt Instrument, Payment In-kind Interest"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Long-Term Debt Instruments [Table]",
        "label": "Schedule of Long-Term Debt Instruments [Table]",
        "documentation": "Disclosure of information about long-term debt instrument or arrangement."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r50",
      "r53",
      "r64",
      "r123",
      "r125",
      "r234",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r447",
      "r452",
      "r453",
      "r454",
      "r455",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r465",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r1029",
      "r1212",
      "r1325",
      "r1327"
     ]
    },
    "us-gaap_DebtInstrumentTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentTerm",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, term",
        "label": "Debt Instrument, Term",
        "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentUnamortizedDiscount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtInstrumentUnamortizedDiscount",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": -1.0,
       "order": 2.0
      },
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails",
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, unamortized discount",
        "negatedTerseLabel": "Less: unamortized debt issuance fee",
        "label": "Debt Instrument, Unamortized Discount",
        "documentation": "Amount, after accumulated amortization, of debt discount."
       }
      }
     },
     "auth_ref": [
      "r1266",
      "r1324",
      "r1325",
      "r1327"
     ]
    },
    "cdxs_DebtInstrumentUncapitalizedPaymentInKindInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DebtInstrumentUncapitalizedPaymentInKindInterest",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Less: uncapitalized payment in-kind interest",
        "label": "Debt Instrument, Uncapitalized Payment In-kind Interest",
        "documentation": "Debt Instrument, Uncapitalized Payment In-kind Interest"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit losses",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of writeoff of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r378"
     ]
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Deferred Foreign Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r1214",
      "r1308"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deferred benefit",
        "label": "Deferred Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r169",
      "r1214"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred benefit:",
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Total deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r78",
      "r137",
      "r607"
     ]
    },
    "us-gaap_DeferredTaxAssetsCapitalLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsCapitalLossCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital losses",
        "label": "Deferred Tax Assets, Capital Loss Carryforwards",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible capital loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsDeferredIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsDeferredIncome",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenues",
        "label": "Deferred Tax Assets, Deferred Income",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGoodwillAndIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets",
        "label": "Deferred Tax Assets, Goodwill and Intangible Assets",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deferred tax assets:",
        "label": "Deferred Tax Assets, Gross",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r608"
     ]
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGrossAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets:",
        "label": "Deferred Tax Assets, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsInProcessResearchAndDevelopment",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "R&amp;D Capitalization",
        "label": "Deferred Tax Asset, In-Process Research and Development",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from in-process research and development cost acquired in business combination or from joint venture formation or both."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "cdxs_DeferredTaxAssetsLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DeferredTaxAssetsLeaseLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease liability",
        "label": "Deferred Tax Assets, Lease Liability",
        "documentation": "Deferred Tax Assets, Lease Liability"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses, not subject to expiration, amount",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards that are not subject to expiration dates."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOther",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Deferred Tax Assets, Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment",
        "label": "Deferred Tax Assets, Property, Plant and Equipment",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credits",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards",
        "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserves and accruals",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsUnrealizedCurrencyLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsUnrealizedCurrencyLosses",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized gain/loss",
        "label": "Deferred Tax Assets, Unrealized Currency Losses",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from unrealized losses on foreign currency transactions."
       }
      }
     },
     "auth_ref": [
      "r1306"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Valuation allowance",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized."
       }
      }
     },
     "auth_ref": [
      "r609"
     ]
    },
    "us-gaap_DeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Net deferred tax liabilities",
        "label": "Deferred Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r1304"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_DeferredTaxLiabilitiesRightOfUseAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DeferredTaxLiabilitiesRightOfUseAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Right-of-use assets",
        "label": "Deferred Tax Liabilities, Right-of-use Assets",
        "documentation": "Deferred Tax Liabilities, Right-of-use Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/A401kPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Defined contribution plan, cost",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r532"
     ]
    },
    "cdxs_DefinedContributionPlanParticipantEligibilityAge": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "DefinedContributionPlanParticipantEligibilityAge",
     "presentation": [
      "http://www.codexis.com/role/A401kPlanDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Defined contribution plan, participant eligibility, age",
        "label": "Defined Contribution Plan, Participant Eligibility, Age",
        "documentation": "Defined Contribution Plan, Participant Eligibility, Age"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DemandDepositsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DemandDepositsMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Demand deposits",
        "label": "Demand Deposits [Member]",
        "documentation": "Accounts that may or may not bear interest and that depositor is entitled to withdraw at anytime without prior notice. Checking and negotiable order of withdrawal (NOW) accounts are the most common forms of demand deposits."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Depreciation",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation",
        "label": "Depreciation",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r44"
     ]
    },
    "us-gaap_DepreciationDepletionAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DepreciationDepletionAndAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation and amortization",
        "label": "Depreciation, Depletion and Amortization",
        "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r262",
      "r275",
      "r299",
      "r975",
      "r976"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r510",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1004",
      "r1005",
      "r1006"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r510",
      "r1000",
      "r1001",
      "r1002",
      "r1003",
      "r1004",
      "r1005",
      "r1006"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Disaggregation of Revenue",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r1271"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r534",
      "r538",
      "r569",
      "r570",
      "r572",
      "r1011"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disclosure of Compensation Related Costs, Share-based Payments [Abstract]",
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Annual Report",
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1090"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Financial Statement Error Correction [Flag]",
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1090",
      "r1133"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r1111"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Documents Incorporated by Reference",
        "label": "Documents Incorporated by Reference [Text Block]",
        "documentation": "Documents incorporated by reference."
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Domestic Tax Jurisdiction [Member]",
        "documentation": "Designated federal jurisdiction entitled to levy and collect income tax in country of domicile. Includes, but is not limited to, national jurisdiction for non-U.S. jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r589"
     ]
    },
    "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year",
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1122"
     ]
    },
    "us-gaap_EMEAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EMEAMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "EMEA [Member]",
        "terseLabel": "EMEA",
        "label": "EMEA [Member]",
        "documentation": "Regions of Europe, Middle East and Africa."
       }
      }
     },
     "auth_ref": [
      "r1384",
      "r1385",
      "r1386",
      "r1387"
     ]
    },
    "cdxs_EarlyRepaymentFeePercentage": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EarlyRepaymentFeePercentage",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Early repayment fee, percentage",
        "label": "Early Repayment Fee, Percentage",
        "documentation": "Early Repayment Fee, Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share [Abstract]",
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net loss per share, basic (in dollars per share)",
        "label": "Earnings Per Share, Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r216",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r250",
      "r252",
      "r255",
      "r256",
      "r257",
      "r261",
      "r628",
      "r631",
      "r646",
      "r647",
      "r763",
      "r787",
      "r967"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net loss per share, diluted (in dollars per share)",
        "label": "Earnings Per Share, Diluted",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r216",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r245",
      "r252",
      "r255",
      "r256",
      "r257",
      "r261",
      "r628",
      "r631",
      "r646",
      "r647",
      "r763",
      "r787",
      "r967"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Loss per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r249",
      "r258",
      "r259",
      "r260"
     ]
    },
    "cdxs_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Executive compensation",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation",
        "documentation": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accrued compensation",
        "label": "Employee-related Liabilities, Current",
        "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based payment arrangement, nonvested award, cost not yet recognized, amount",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r571"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average remaining amortization period",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r571"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized compensation cost, awards other than options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r1300"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized compensation cost, options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1300"
     ]
    },
    "us-gaap_EmployeeSeveranceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeSeveranceMember",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Severance",
        "label": "Employee Severance [Member]",
        "documentation": "Termination of an employee associated with exit from or disposal of business activities or restructurings pursuant to a plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeStockMember",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails",
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ESPP",
        "label": "Employee Stock [Member]",
        "documentation": "An Employee Stock Purchase Plan is a tax-efficient means by which employees of a corporation can purchase the corporation's stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options",
        "label": "Share-Based Payment Arrangement, Option [Member]",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityDomain",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity [Domain]",
        "label": "Entity [Domain]",
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r1173"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Public Float",
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Voluntary Filers",
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Well-known Seasoned Issuer",
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r1174"
     ]
    },
    "cdxs_EnzymeProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EnzymeProductMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Enzyme Product",
        "label": "Enzyme Product [Member]",
        "documentation": "Enzyme Product"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_EnzymeSupplyAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EnzymeSupplyAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Enzyme Supply Agreement",
        "label": "Enzyme Supply Agreement [Member]",
        "documentation": "Enzyme Supply Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_EqtyAwrdsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Adjustments, Footnote",
        "label": "Equity Awards Adjustments, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1116"
     ]
    },
    "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table",
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r1169"
     ]
    },
    "ecd_EqtyAwrdsAdjsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Adjustments",
        "label": "Equity Awards Adjustments [Member]"
       }
      }
     },
     "auth_ref": [
      "r1169"
     ]
    },
    "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table",
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r1169"
     ]
    },
    "us-gaap_EquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquipmentMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Laboratory equipment",
        "label": "Equipment [Member]",
        "documentation": "Tangible personal property used to produce goods and services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity [Abstract]",
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component [Domain]",
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r177",
      "r212",
      "r213",
      "r214",
      "r235",
      "r236",
      "r237",
      "r239",
      "r244",
      "r246",
      "r248",
      "r263",
      "r349",
      "r350",
      "r398",
      "r489",
      "r617",
      "r618",
      "r625",
      "r626",
      "r627",
      "r629",
      "r630",
      "r631",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r645",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r672",
      "r673",
      "r688",
      "r783",
      "r813",
      "r814",
      "r815",
      "r832",
      "r902"
     ]
    },
    "srt_EquityMethodInvesteeNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "EquityMethodInvesteeNameDomain",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment, Name [Domain]",
        "label": "Investment, Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r345",
      "r346",
      "r347",
      "r624",
      "r1176",
      "r1177",
      "r1178",
      "r1310",
      "r1311",
      "r1312",
      "r1313"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesFvNiUnrealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Unrealized gain on non-marketable securities ($0, $0, and ($208) from a related party)",
        "terseLabel": "Unrealized gain on non-marketable securities",
        "label": "Equity Securities, FV-NI, Unrealized Gain (Loss)",
        "documentation": "Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r789",
      "r1235"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment in non-marketable equity securities",
        "label": "Equity Securities without Readily Determinable Fair Value, Amount",
        "documentation": "Amount of investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r342"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of investment in non-marketable securities",
        "label": "Equity Securities without Readily Determinable Fair Value, Impairment Loss, Annual Amount",
        "documentation": "Amount of impairment loss on investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r343"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueLineItems",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Securities without Readily Determinable Fair Value [Line Items]",
        "label": "Equity Securities without Readily Determinable Fair Value [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r1232",
      "r1233",
      "r1234"
     ]
    },
    "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities without readily determinable fair value, upward (downward) price adjustment, annual amount",
        "label": "Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount",
        "documentation": "Equity Securities Without Readily Determinable Fair Value, Realized Upward (Downward) Price Adjustment, Annual Amount"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueShares",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities without readily determinable fair value (in shares)",
        "label": "Equity Securities Without Readily Determinable Fair Value, Shares",
        "documentation": "Equity Securities Without Readily Determinable Fair Value, Shares"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone payments received (in shares)",
        "label": "Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received",
        "documentation": "Equity Securities Without Readily Determinable Fair Value, Shares, Milestone Payments Received"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueTable",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Securities without Readily Determinable Fair Value [Table]",
        "label": "Equity Securities without Readily Determinable Fair Value [Table]",
        "documentation": "Disclosure of information about investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r1232",
      "r1233",
      "r1234"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Carrying Value of Non-marketable Equity Securities",
        "label": "Equity Securities without Readily Determinable Fair Value [Table Text Block]",
        "documentation": "Tabular disclosure of investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r1232",
      "r1233",
      "r1234"
     ]
    },
    "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities without readily determinable fair value, upward price adjustment, annual amount",
        "label": "Equity Securities without Readily Determinable Fair Value, Upward Price Adjustment, Annual Amount",
        "documentation": "Amount of gain from upward price adjustment on investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r344"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Valuation Assumption Difference, Footnote",
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1126"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneous Compensation Analysis",
        "label": "Erroneous Compensation Analysis [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1083",
      "r1094",
      "r1104",
      "r1137"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneously Awarded Compensation Recovery",
        "label": "Erroneously Awarded Compensation Recovery [Table]"
       }
      }
     },
     "auth_ref": [
      "r1080",
      "r1091",
      "r1101",
      "r1134"
     ]
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Executive Category:",
        "label": "Executive Category [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1132"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r649",
      "r650",
      "r657",
      "r1017"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Table]",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r649",
      "r650",
      "r657",
      "r1017"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule Of Cash, Cash Equivalents, And Short-Term Investments",
        "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]",
        "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r1316",
      "r1317"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]",
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r454",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r648",
      "r650",
      "r651",
      "r652",
      "r653",
      "r656",
      "r657",
      "r659",
      "r696",
      "r697",
      "r698",
      "r992",
      "r993",
      "r1007",
      "r1008",
      "r1009",
      "r1017",
      "r1022"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Disclosures [Abstract]",
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Inputs, Level 1",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r454",
      "r517",
      "r522",
      "r650",
      "r657",
      "r696",
      "r1007",
      "r1008",
      "r1009",
      "r1017"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Inputs, Level 2",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets."
       }
      }
     },
     "auth_ref": [
      "r454",
      "r517",
      "r522",
      "r650",
      "r651",
      "r657",
      "r697",
      "r992",
      "r993",
      "r1007",
      "r1008",
      "r1009",
      "r1017"
     ]
    },
    "us-gaap_FairValueMeasurementInputsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementInputsDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Fair Value Measurements",
        "label": "Fair Value Measurement and Measurement Inputs, Recurring and Nonrecurring [Text Block]",
        "documentation": "The entire disclosure of the fair value measurement of assets and liabilities, which includes financial instruments measured at fair value that are classified in shareholders' equity, which may be measured on a recurring or nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r132"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurements, Fair Value Hierarchy [Domain]",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r454",
      "r517",
      "r518",
      "r519",
      "r520",
      "r521",
      "r522",
      "r648",
      "r650",
      "r651",
      "r652",
      "r653",
      "r656",
      "r657",
      "r659",
      "r696",
      "r697",
      "r698",
      "r992",
      "r993",
      "r1007",
      "r1008",
      "r1009",
      "r1017",
      "r1022"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Fair Value Measurements",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "cdxs_FinanceLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "FinanceLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finance lease costs",
        "label": "Finance Lease, Cost",
        "documentation": "Finance Lease, Cost"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instrument [Axis]",
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r356",
      "r357",
      "r359",
      "r360",
      "r365",
      "r375",
      "r376",
      "r377",
      "r465",
      "r485",
      "r643",
      "r660",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705",
      "r706",
      "r707",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r784",
      "r984",
      "r1017",
      "r1020",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1032",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1231",
      "r1232",
      "r1233",
      "r1234",
      "r1315",
      "r1318",
      "r1319",
      "r1320",
      "r1321",
      "r1322"
     ]
    },
    "us-gaap_FinancingReceivableBeforeAllowanceForCreditLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinancingReceivableBeforeAllowanceForCreditLossAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial assets:",
        "label": "Financing Receivable, before Allowance for Credit Loss [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Foreign Currency Translation",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy."
       }
      }
     },
     "auth_ref": [
      "r663"
     ]
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1141"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount",
        "label": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1141"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1141"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery, Explanation of Impracticability",
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1141"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Forgone Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1141"
     ]
    },
    "cdxs_FourCustomersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "FourCustomersMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Four Customers",
        "label": "Four Customers [Member]",
        "documentation": "Four Customers"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year",
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1121"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Goodwill",
        "periodStartLabel": "Goodwill at beginning of period",
        "periodEndLabel": "Goodwill at end of period",
        "label": "Goodwill",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r186",
      "r385",
      "r760",
      "r976",
      "r985",
      "r1019",
      "r1031",
      "r1239",
      "r1246"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined."
       }
      }
     },
     "auth_ref": [
      "r384",
      "r396",
      "r985"
     ]
    },
    "us-gaap_GoodwillImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillImpairmentLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill impairment",
        "negatedTerseLabel": "Impairment",
        "label": "Goodwill, Impairment Loss",
        "documentation": "Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r386",
      "r392",
      "r396",
      "r985",
      "r1019"
     ]
    },
    "us-gaap_GoodwillRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillRollForward",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Roll Forward]",
        "label": "Goodwill [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GranteeStatusAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GranteeStatusAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Grantee Status [Axis]",
        "label": "Grantee Status [Axis]",
        "documentation": "Information by status of recipient to whom award is granted."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r537",
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "us-gaap_GranteeStatusDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GranteeStatusDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Grantee Status [Domain]",
        "label": "Grantee Status [Domain]",
        "documentation": "Status of recipient to whom award is granted."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r537",
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "country_IE": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "IE",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "IRELAND",
        "label": "IRELAND"
       }
      }
     },
     "auth_ref": []
    },
    "country_IN": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "IN",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "India",
        "label": "INDIA"
       }
      }
     },
     "auth_ref": []
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ICFR Auditor Attestation Flag",
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r1066",
      "r1067",
      "r1090"
     ]
    },
    "us-gaap_ImpairmentOfLeasehold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ImpairmentOfLeasehold",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of leasehold",
        "label": "Impairment of Leasehold",
        "documentation": "The adjustment to reduce the value of existing agreements that specify the lessee's rights to use the leased property. This expense is charged when the estimates of future profits generated by the leased property are reduced."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r43"
     ]
    },
    "us-gaap_ImpairmentOfLongLivedAssetsHeldForUse": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ImpairmentOfLongLivedAssetsHeldForUse",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of long-lived assets held-for-use",
        "label": "Impairment, Long-Lived Asset, Held-for-Use",
        "documentation": "The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale)."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r43",
      "r115",
      "r1018"
     ]
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of Long-Lived Assets",
        "label": "Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r116"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations."
       }
      }
     },
     "auth_ref": [
      "r228",
      "r588"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loss before income taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r144",
      "r148",
      "r764",
      "r781",
      "r969",
      "r975",
      "r1222",
      "r1224",
      "r1225",
      "r1226",
      "r1227"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesComponentsofLossBeforeProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile."
       }
      }
     },
     "auth_ref": [
      "r228",
      "r588"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement [Abstract]",
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Income Location, Balance [Axis]",
        "verboseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]",
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r399",
      "r406",
      "r413",
      "r654",
      "r655",
      "r658",
      "r810",
      "r812",
      "r887",
      "r953",
      "r1021",
      "r1350"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Income Location, Balance [Domain]",
        "verboseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]",
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r406",
      "r413",
      "r654",
      "r655",
      "r658",
      "r810",
      "r812",
      "r887",
      "r953",
      "r1021",
      "r1350"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Jurisdiction [Axis]",
        "label": "Income Tax Jurisdiction [Axis]",
        "documentation": "Information by income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r223",
      "r589",
      "r590",
      "r599",
      "r613",
      "r1016",
      "r1305"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Jurisdiction [Domain]",
        "label": "Income Tax Jurisdiction [Domain]",
        "documentation": "Income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r223",
      "r589",
      "r590",
      "r599",
      "r613",
      "r1016",
      "r1305"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Disclosure [Abstract]",
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r229",
      "r583",
      "r589",
      "r595",
      "r596",
      "r597",
      "r604",
      "r611",
      "r619",
      "r621",
      "r622",
      "r623",
      "r831",
      "r1016"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      },
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/IncomeTaxesComponentsofProvisionforIncomeTaxesDetails",
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Provision for income taxes",
        "totalLabel": "Provision for income taxes",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r152",
      "r170",
      "r247",
      "r248",
      "r262",
      "r278",
      "r299",
      "r587",
      "r589",
      "r620",
      "r790",
      "r1016"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Rate Reconciliation",
        "label": "Income Tax Expense (Benefit), Effective Income Tax Rate Reconciliation, Amount [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Income Taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r211",
      "r585",
      "r586",
      "r604",
      "r605",
      "r610",
      "r615",
      "r825"
     ]
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in valuation allowance",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r1016",
      "r1302"
     ]
    },
    "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign operations taxed at different rates",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r590",
      "r593",
      "r1016",
      "r1302"
     ]
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax benefit at federal statutory rate",
        "label": "Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount",
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r589",
      "r1016"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseOther",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other nondeductible items",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other nondeductible expenses."
       }
      }
     },
     "auth_ref": [
      "r1016",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount",
        "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1016",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State taxes",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r592",
      "r1016",
      "r1302"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationTaxCreditsResearch",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTaxRateReconciliationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Research and development credits",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit."
       }
      }
     },
     "auth_ref": [
      "r1016",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income taxes",
        "label": "Income Taxes Paid, Net",
        "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r223",
      "r612",
      "r613"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred revenue",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r726",
      "r1208"
     ]
    },
    "cdxs_IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accrued compensation and other accrued liabilities",
        "label": "Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities",
        "documentation": "Increase (Decrease) in Employee Related Liabilities and Other Accrued Liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInFinanceReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInFinanceReceivables",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Financial assets",
        "label": "Increase (Decrease) in Finance Receivables",
        "documentation": "The increase (decrease) during the reporting period in outstanding loans including accrued interest."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Changes in operating assets and liabilities:",
        "label": "Increase (Decrease) in Operating Capital [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherNoncurrentLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other long-term liabilities",
        "label": "Increase (Decrease) in Other Noncurrent Liabilities",
        "documentation": "Amount of increase (decrease) in noncurrent operating liabilities classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expenses and other assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IndemnificationGuaranteeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IndemnificationGuaranteeMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indemnification agreement",
        "label": "Indemnification Agreement [Member]",
        "documentation": "An agreement (contract) that contingently requires the guarantor to make payments to the guaranteed party in compensation for that party's or parties' loss or injury attributable to specified events or actions, such as a patent infringement action against an entity that relied on certain representations as to ownership rights made by a software vendor."
       }
      }
     },
     "auth_ref": [
      "r1260"
     ]
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individual:",
        "label": "Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1132",
      "r1141",
      "r1145",
      "r1153"
     ]
    },
    "cdxs_InnovatusLoanFirstTrancheMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "InnovatusLoanFirstTrancheMember",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Innovatus Loan - First Tranche",
        "label": "Innovatus Loan - First Tranche [Member]",
        "documentation": "Innovatus Loan - First Tranche"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_InnovatusLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "InnovatusLoanMember",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Innovatus Loan",
        "label": "Innovatus Loan [Member]",
        "documentation": "Innovatus Loan"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_InnovatusLoanSecondTrancheMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "InnovatusLoanSecondTrancheMember",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Innovatus Loan - Second Tranche",
        "label": "Innovatus Loan - Second Tranche [Member]",
        "documentation": "Innovatus Loan - Second Tranche"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_InnovatusLoanWarrantsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "InnovatusLoanWarrantsMember",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Innovatus Loan Warrants",
        "label": "Innovatus Loan Warrants [Member]",
        "documentation": "Innovatus Loan Warrants"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1151"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1068",
      "r1157"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Adopted",
        "label": "Insider Trading Policies and Procedures Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1068",
      "r1157"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted",
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1068",
      "r1157"
     ]
    },
    "us-gaap_InterestExpenseDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestExpenseDebt",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest expense, debt",
        "label": "Interest Expense, Debt",
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense for debt."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r460",
      "r470",
      "r994",
      "r995"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest paid",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount."
       }
      }
     },
     "auth_ref": [
      "r219",
      "r221",
      "r222"
     ]
    },
    "us-gaap_InventoryFinishedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryFinishedGoods",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Gross",
        "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1199"
     ]
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories",
        "totalLabel": "Total inventories",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r199",
      "r959",
      "r1031"
     ]
    },
    "us-gaap_InventoryNetAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNetAbstract",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Inventory Components",
        "label": "Inventory, Net [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory, Policy [Policy Text Block]",
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost."
       }
      }
     },
     "auth_ref": [
      "r155",
      "r182",
      "r198",
      "r379",
      "r380",
      "r381",
      "r728",
      "r965"
     ]
    },
    "us-gaap_InventoryRawMaterials": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryRawMaterials",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Gross",
        "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1201"
     ]
    },
    "us-gaap_InventoryWorkInProcess": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryWorkInProcess",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsScheduleofInventoryComponentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Work in process",
        "label": "Inventory, Work in Process, Gross",
        "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1200"
     ]
    },
    "us-gaap_InvestmentIncomeInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentIncomeInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Interest income",
        "label": "Investment Income, Interest",
        "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities."
       }
      }
     },
     "auth_ref": [
      "r262",
      "r273",
      "r299",
      "r975",
      "r1207"
     ]
    },
    "us-gaap_InvestmentOwnedBalanceShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentOwnedBalanceShares",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment owned, balance (in shares)",
        "label": "Investment Owned, Balance, Shares",
        "documentation": "Number of shares of investment owned."
       }
      }
     },
     "auth_ref": [
      "r845",
      "r851",
      "r910",
      "r921",
      "r925",
      "r1053"
     ]
    },
    "us-gaap_InvestmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term Investments and Investment in Non-Marketable Equity Securities",
        "label": "Investment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for investment in financial asset."
       }
      }
     },
     "auth_ref": [
      "r788",
      "r821",
      "r822",
      "r823",
      "r824",
      "r912",
      "r913"
     ]
    },
    "us-gaap_InvestmentVariableInterestRateTypeExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentVariableInterestRateTypeExtensibleEnumeration",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment, Variable Interest Rate, Type [Extensible Enumeration]",
        "label": "Investment, Variable Interest Rate, Type [Extensible Enumeration]",
        "documentation": "Indicates type of variable interest rate of investment."
       }
      }
     },
     "auth_ref": [
      "r909",
      "r915",
      "r917",
      "r924"
     ]
    },
    "us-gaap_InvestmentsAndOtherNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentsAndOtherNoncurrentAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment in non-marketable equity securities",
        "label": "Investments and Other Noncurrent Assets",
        "documentation": "Amount of investments, and noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentsDebtAndEquitySecuritiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Investments, Debt and Equity Securities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecurities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investments in Non-Marketable Securities",
        "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]",
        "documentation": "The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment."
       }
      }
     },
     "auth_ref": [
      "r661"
     ]
    },
    "cdxs_LaboratoryEquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "LaboratoryEquipmentMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Laboratory equipment",
        "label": "Laboratory Equipment [Member]",
        "documentation": "Laboratory Equipment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LandMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LandMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Land",
        "label": "Land [Member]",
        "documentation": "Part of earth's surface not covered by water."
       }
      }
     },
     "auth_ref": [
      "r1272"
     ]
    },
    "us-gaap_LeaseContractualTermAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseContractualTermAxis",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease Contractual Term [Axis]",
        "label": "Lease Contractual Term [Axis]",
        "documentation": "Information by contractual term of lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r687",
      "r1183"
     ]
    },
    "us-gaap_LeaseContractualTermDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseContractualTermDomain",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease Contractual Term [Domain]",
        "label": "Lease Contractual Term [Domain]",
        "documentation": "Contractual term of lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r687",
      "r1183"
     ]
    },
    "us-gaap_LeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total lease cost",
        "label": "Lease, Cost",
        "documentation": "Amount of lease cost recognized by lessee for lease contract."
       }
      }
     },
     "auth_ref": [
      "r678",
      "r1030"
     ]
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseCostTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Lease Cost",
        "label": "Lease, Cost [Table Text Block]",
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income."
       }
      }
     },
     "auth_ref": [
      "r1330"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leasehold improvements",
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r114",
      "r686"
     ]
    },
    "dei_LegalEntityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LegalEntityAxis",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Legal Entity [Axis]",
        "label": "Legal Entity [Axis]",
        "documentation": "The set of legal entities associated with a report."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease Accounting",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r677"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Operating Lease Maturity",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r1331"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total minimum lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails_1": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Less: imputed interest",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r685"
     ]
    },
    "cdxs_LesseeOperatingLeaseNumberOfRenewalOptions": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "LesseeOperatingLeaseNumberOfRenewalOptions",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of options to extend lease term",
        "label": "Lessee, Operating Lease, Number Of Renewal Options",
        "documentation": "Lessee, Operating Lease, Number Of Renewal Options"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseRenewalTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseRenewalTerm",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Renewal term",
        "label": "Lessee, Operating Lease, Renewal Term",
        "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1329"
     ]
    },
    "us-gaap_LetterOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LetterOfCreditMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Letter of Credit",
        "label": "Letter of Credit [Member]",
        "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r69",
      "r70",
      "r71",
      "r74",
      "r75",
      "r76",
      "r79",
      "r227",
      "r348",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r634",
      "r635",
      "r636",
      "r662",
      "r860",
      "r968",
      "r1061",
      "r1263",
      "r1333",
      "r1334"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and stockholders\u2019 equity",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r87",
      "r141",
      "r776",
      "r1031",
      "r1213",
      "r1236",
      "r1323"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Liabilities and Stockholders\u2019 Equity",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r181",
      "r227",
      "r348",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r634",
      "r635",
      "r636",
      "r662",
      "r1031",
      "r1263",
      "r1333",
      "r1334"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable borrowing base percentage",
        "label": "Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage",
        "documentation": "Line Of Credit Facility, Accounts Receivable Borrowing Base Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LineOfCreditFacilityCurrentBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current borrowing capacity",
        "label": "Line of Credit Facility, Current Borrowing Capacity",
        "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r68",
      "r73"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails",
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total long-term debt",
        "label": "Long-Term Debt",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r139",
      "r453",
      "r468",
      "r992",
      "r993",
      "r1029",
      "r1345"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Long-Term Debt, Maturity, Year One",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r234",
      "r458"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Long-Term Debt, Maturity, Year Five",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r234",
      "r458"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Long-Term Debt, Maturity, Year Four",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r234",
      "r458"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Long-Term Debt, Maturity, Year Three",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r234",
      "r458"
     ]
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Long-Term Debt, Maturity, Year Two",
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r234",
      "r458"
     ]
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermDebtNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term debt",
        "label": "Long-Term Debt, Excluding Current Maturities",
        "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation."
       }
      }
     },
     "auth_ref": [
      "r189"
     ]
    },
    "us-gaap_LongTermPurchaseCommitmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermPurchaseCommitmentLineItems",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term Purchase Commitment [Line Items]",
        "label": "Long-Term Purchase Commitment [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermPurchaseCommitmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermPurchaseCommitmentTable",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term Purchase Commitment [Table]",
        "label": "Long-Term Purchase Commitment [Table]",
        "documentation": "Disclosure of information about long-term purchase arrangement. Includes, but is not limited to, term of arrangement with supplier, minimum quantity required, milestone, period covered by arrangement, and committed amount. Excludes short-term purchase arrangement and unconditional purchase obligation."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_LongTermUnbilledReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "LongTermUnbilledReceivablesMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-Term Unbilled Receivables",
        "label": "Long-Term Unbilled Receivables [Member]",
        "documentation": "Long-Term Unbilled Receivables"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongtermDebtTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongtermDebtTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-Term Debt, Type [Axis]",
        "label": "Long-Term Debt, Type [Axis]",
        "documentation": "Information by type of long-term debt."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r1250",
      "r1251",
      "r1252"
     ]
    },
    "us-gaap_LongtermDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongtermDebtTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-Term Debt, Type [Domain]",
        "label": "Long-Term Debt, Type [Domain]",
        "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r46",
      "r1250",
      "r1251",
      "r1252"
     ]
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingency Nature [Axis]",
        "label": "Loss Contingency Nature [Axis]",
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r424",
      "r425",
      "r428",
      "r578",
      "r819",
      "r990",
      "r1256",
      "r1257"
     ]
    },
    "us-gaap_LossContingencyAccrualCarryingValueCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyAccrualCarryingValueCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accruals for expenses related to indemnification issues",
        "label": "Loss Contingency, Accrual, Current",
        "documentation": "Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r423"
     ]
    },
    "us-gaap_LossContingencyNatureDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossContingencyNatureDomain",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingency, Nature [Domain]",
        "label": "Loss Contingency, Nature [Domain]",
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r424",
      "r425",
      "r428",
      "r578",
      "r819",
      "r990",
      "r1256",
      "r1257"
     ]
    },
    "cdxs_MAIAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MAIAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MAI Agreement",
        "label": "MAI Agreement [Member]",
        "documentation": "MAI Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Axis]",
        "label": "Customer [Axis]"
       }
      }
     },
     "auth_ref": [
      "r307",
      "r1002",
      "r1042",
      "r1047",
      "r1271",
      "r1347",
      "r1351",
      "r1352",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "cdxs_MasterCollaborationResearchAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MasterCollaborationResearchAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Master Collaboration &amp; Research Agreement",
        "label": "Master Collaboration &amp; Research Agreement [Member]",
        "documentation": "Master Collaboration &amp; Research Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum",
        "label": "Maximum [Member]"
       }
      }
     },
     "auth_ref": [
      "r424",
      "r425",
      "r426",
      "r427",
      "r533",
      "r578",
      "r653",
      "r725",
      "r809",
      "r811",
      "r819",
      "r852",
      "r853",
      "r908",
      "r914",
      "r918",
      "r919",
      "r923",
      "r951",
      "r952",
      "r981",
      "r996",
      "r1010",
      "r1022",
      "r1023",
      "r1027",
      "r1028",
      "r1043",
      "r1265",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340"
     ]
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measure:",
        "label": "Measure [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1124"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Measure Name"
       }
      }
     },
     "auth_ref": [
      "r1124"
     ]
    },
    "cdxs_MerckMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MerckMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Merck",
        "label": "Merck [Member]",
        "documentation": "Merck [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_MilestoneOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MilestoneOneMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone One",
        "label": "Milestone One [Member]",
        "documentation": "Milestone One"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_MilestonePaymentPerTargetGeneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MilestonePaymentPerTargetGeneMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone Payment Per Target Gene",
        "label": "Milestone Payment Per Target Gene [Member]",
        "documentation": "Milestone Payment Per Target Gene"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_MilestoneTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MilestoneTwoMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Milestone Two",
        "label": "Milestone Two [Member]",
        "documentation": "Milestone Two"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum",
        "label": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r424",
      "r425",
      "r426",
      "r427",
      "r533",
      "r578",
      "r653",
      "r725",
      "r809",
      "r811",
      "r819",
      "r852",
      "r853",
      "r908",
      "r914",
      "r918",
      "r919",
      "r923",
      "r951",
      "r952",
      "r981",
      "r996",
      "r1010",
      "r1022",
      "r1023",
      "r1027",
      "r1043",
      "r1265",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MNPI Disclosure Timed for Compensation Value",
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "cdxs_MolecularAssembliesIncMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "MolecularAssembliesIncMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MAI",
        "label": "Molecular Assemblies, Inc. [Member]",
        "documentation": "Molecular Assemblies, Inc."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MoneyMarketFundsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MoneyMarketFundsMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market funds",
        "label": "Money Market Funds [Member]",
        "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities."
       }
      }
     },
     "auth_ref": [
      "r1273"
     ]
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Material Terms of Trading Arrangement",
        "label": "Material Terms of Trading Arrangement [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1152"
     ]
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Domain]",
        "label": "Customer [Domain]"
       }
      }
     },
     "auth_ref": [
      "r307",
      "r1002",
      "r1042",
      "r1047",
      "r1271",
      "r1347",
      "r1351",
      "r1352",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Named Executive Officers, Footnote",
        "label": "Named Executive Officers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "us-gaap_NatureOfOperations": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NatureOfOperations",
     "presentation": [
      "http://www.codexis.com/role/DescriptionofBusiness"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Description of Business",
        "label": "Nature of Operations [Text Block]",
        "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward."
       }
      }
     },
     "auth_ref": [
      "r156",
      "r171"
     ]
    },
    "cdxs_NestecLtd.NestleHealthSciencesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NestecLtd.NestleHealthSciencesMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nestec Ltd. (Nestle Health Sciences)",
        "label": "Nestec Ltd. (Nestle Health Sciences) [Member]",
        "documentation": "Nestec Ltd. (Nestle Health Sciences) [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NestleHealthScienceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NestleHealthScienceMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nestl\u00e9 Health Science",
        "label": "Nestl\u00e9 Health Science [Member]",
        "documentation": "Nestl\u00e9 Health Science"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r220"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Financing activities:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r220"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Investing activities:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r106",
      "r107"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Operating activities:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 18.0
      },
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net loss",
        "terseLabel": "Net Loss",
        "label": "Net Income (Loss) Attributable to Parent",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r107",
      "r145",
      "r179",
      "r206",
      "r209",
      "r214",
      "r227",
      "r238",
      "r240",
      "r241",
      "r242",
      "r243",
      "r244",
      "r247",
      "r248",
      "r254",
      "r348",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r628",
      "r631",
      "r647",
      "r662",
      "r782",
      "r883",
      "r900",
      "r901",
      "r1059",
      "r1263"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounting Pronouncements",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-GAAP Measure Description",
        "label": "Non-GAAP Measure Description [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1124"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-NEOs",
        "label": "Non-NEOs [Member]"
       }
      }
     },
     "auth_ref": [
      "r1087",
      "r1098",
      "r1108",
      "r1132",
      "r1141"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r1115"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount",
        "label": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1114"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO",
        "label": "Non-PEO NEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r1132"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted",
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1152"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated",
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1152"
     ]
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental non-cash investing and financing activities:",
        "label": "Noncash Investing and Financing Items [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noncash or part noncash acquisition, noncash financial or equity instrument consideration, shares issued (in shares)",
        "label": "Noncash or Part Noncash Acquisition, Noncash Financial or Equity Instrument Consideration, Shares Issued",
        "documentation": "The number of shares issued as [noncash or part noncash] consideration for a business or asset acquired. Noncash is defined as transactions during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r30",
      "r31"
     ]
    },
    "us-gaap_NoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-lived assets",
        "label": "Long-Lived Assets",
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r306"
     ]
    },
    "us-gaap_NonmonetaryTransactionGrossOperatingRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonmonetaryTransactionGrossOperatingRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognized from transactions",
        "label": "Nonmonetary Transaction, Gross Operating Revenue Recognized",
        "documentation": "The amount of gross operating revenue recognized in a nonmonetary transaction."
       }
      }
     },
     "auth_ref": [
      "r63"
     ]
    },
    "us-gaap_NotesReceivableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NotesReceivableGross",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AccountsNotesAndLoansReceivableNetCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total financial assets",
        "label": "Financing Receivable, before Allowance for Credit Loss",
        "documentation": "Amortized cost, before allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r150",
      "r151",
      "r175",
      "r176",
      "r194",
      "r309",
      "r359",
      "r366",
      "r982",
      "r983",
      "r1192",
      "r1237"
     ]
    },
    "cdxs_NovartisMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NovartisMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Novartis",
        "label": "Novartis [Member]",
        "documentation": "Novartis [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NovelBiotherapeuticsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NovelBiotherapeuticsMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Novel Biotherapeutics",
        "label": "Novel Biotherapeutics [Member]",
        "documentation": "Novel Biotherapeutics [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NumberOfBusinessSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NumberOfBusinessSegments",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of business segments",
        "label": "Number Of Business Segments",
        "documentation": "Number Of Business Segments"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NumberOfFormerExecutives": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NumberOfFormerExecutives",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of former executives",
        "label": "Number Of Former Executives",
        "documentation": "Number Of Former Executives"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NumberOfOtherFormerExecutive": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NumberOfOtherFormerExecutive",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of other former executive",
        "label": "Number Of Other Former Executive",
        "documentation": "Number Of Other Former Executive"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_NumberOfProgramPlans": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "NumberOfProgramPlans",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of program plans",
        "label": "Number Of Program Plans",
        "documentation": "Number Of Program Plans"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://www.codexis.com/role/DescriptionofBusinessDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of reportable segments",
        "label": "Number of Reportable Segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r970",
      "r980",
      "r1223"
     ]
    },
    "cdxs_OfficeEquipmentAndFurnitureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OfficeEquipmentAndFurnitureMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Office equipment and furniture",
        "verboseLabel": "Office furniture and equipment",
        "label": "Office Equipment and Furniture [Member]",
        "documentation": "Office Equipment and Furniture [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OneTimeTerminationBenefitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OneTimeTerminationBenefitsMember",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "One-time Termination Benefits",
        "label": "One-time Termination Benefits [Member]",
        "documentation": "A lump sum payment to an involuntarily terminated employee in conjunction with exit or disposal activities."
       }
      }
     },
     "auth_ref": [
      "r986",
      "r987",
      "r988",
      "r989"
     ]
    },
    "us-gaap_OperatingCostsAndExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingCostsAndExpensesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Costs and operating expenses:",
        "label": "Operating Costs and Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loss from operations",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r969",
      "r1222",
      "r1224",
      "r1225",
      "r1226",
      "r1227"
     ]
    },
    "us-gaap_OperatingLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease cost",
        "label": "Operating Lease, Cost",
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r1030"
     ]
    },
    "us-gaap_OperatingLeaseImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseImpairmentLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, impairment loss",
        "label": "Operating Lease, Impairment Loss",
        "documentation": "Amount of loss from impairment of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r1328"
     ]
    },
    "cdxs_OperatingLeaseInterestAccretion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLeaseInterestAccretion",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest accretion",
        "label": "Operating Lease, Interest Accretion",
        "documentation": "Operating Lease, Interest Accretion"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Leases",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lease obligations",
        "periodStartLabel": "Beginning balance, lease obligations - operating leases, net",
        "periodEndLabel": "Ending balance, lease obligations - operating leases, net",
        "totalLabel": "Lease obligations",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r675"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current portion of lease obligations - Operating leases",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r675"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails": {
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesMaturityAnalysisofOperatingLeaseDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term lease obligations - Operating leases",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r675"
     ]
    },
    "cdxs_OperatingLeaseLiabilityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLeaseLiabilityRollForward",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Lease, Liability [Roll Forward]",
        "label": "Operating Lease, Liability [Roll Forward]",
        "documentation": "Operating Lease, Liability"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Lease payments",
        "terseLabel": "Operating cash flows from operating leases",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r676",
      "r682"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Right-of-use assets - Operating leases, net",
        "periodStartLabel": "Beginning balance, right-of-use assets - operation leases, net",
        "periodEndLabel": "Ending balance, right-of-use assets - operation leases, net",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r674"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reduction in the carrying amount of right-of-use assets",
        "negatedTerseLabel": "Amortization of right-of-use assets",
        "label": "Operating Lease, Right-of-Use Asset, Periodic Reduction",
        "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r1209"
     ]
    },
    "cdxs_OperatingLeaseRightOfUseAssetDueToLeaseModification": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLeaseRightOfUseAssetDueToLeaseModification",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Addition due to lease modification",
        "label": "Operating Lease, Right-of-Use Asset Due To Lease Modification",
        "documentation": "Operating Lease, Right-of-Use Asset Due To Lease Modification"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_OperatingLeaseRightOfUseAssetRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLeaseRightOfUseAssetRollForward",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Lease, Right-of-Use Asset [Roll Forward]",
        "label": "Operating Lease, Right-of-Use Asset [Roll Forward]",
        "documentation": "Operating Lease, Right-of-Use Asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Weighted-average discount rate",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r684",
      "r1030"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average remaining lease term (in years)",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r683",
      "r1030"
     ]
    },
    "cdxs_OperatingLeaseWriteOffDueToLeaseModification": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLeaseWriteOffDueToLeaseModification",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesScheduleofRightofuseAssetsandLeaseObligationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, write-off due to lease modification",
        "negatedTerseLabel": "Addition due to lease modification",
        "label": "Operating Lease, Write-off Due To Lease Modification",
        "documentation": "Operating Lease, Write-off Due To Lease Modification"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_OperatingLossAndTaxCreditCarryforwardsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLossAndTaxCreditCarryforwardsLineItems",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss and Tax Credit Carryforwards [Line Items]",
        "label": "Operating Loss and Tax Credit Carryforwards [Line Items]",
        "documentation": "[Line Items] for Operating Loss and Tax Credit Carryforwards [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_OperatingLossAndTaxCreditCarryforwardsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OperatingLossAndTaxCreditCarryforwardsTable",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss and Tax Credit Carryforwards",
        "label": "Operating Loss and Tax Credit Carryforwards [Table]",
        "documentation": "Operating Loss and Tax Credit Carryforwards [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLossCarryforwards",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses, amount",
        "label": "Operating Loss Carryforwards",
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r614"
     ]
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Organization, Consolidation and Presentation of Financial Statements [Abstract]",
        "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basis of Presentation and Summary of Significant Accounting Policies",
        "label": "Organization, Consolidation, Basis of Presentation, Business Description and Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for the general note to the financial statements for the reporting entity which may include, descriptions of the basis of presentation, business description, significant accounting policies, consolidations, reclassifications, new pronouncements not yet adopted and changes in accounting principles."
       }
      }
     },
     "auth_ref": [
      "r108",
      "r109",
      "r110",
      "r130"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAccruedLiabilitiesCurrentAndNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Accrued Liabilities",
        "documentation": "Amount of expenses incurred but not yet paid classified as other."
       }
      }
     },
     "auth_ref": [
      "r138"
     ]
    },
    "us-gaap_OtherAggregatedInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAggregatedInvestmentsMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other investments in non-marketable equity securities",
        "label": "Other Security Investments [Member]",
        "documentation": "Other investments in debt and equity securities and other forms of securities that provide ownership interests."
       }
      }
     },
     "auth_ref": [
      "r847",
      "r848",
      "r920"
     ]
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets, current",
        "label": "Other Assets, Current",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r201",
      "r1031"
     ]
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other non-current assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r187"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized gain on available-for-sale short-term investments, net of tax",
        "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax",
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r204",
      "r205",
      "r783"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract",
     "presentation": [
      "http://www.codexis.com/role/CondensedConsolidatedStatementsofComprehensiveLoss"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other comprehensive gain:",
        "label": "Other Comprehensive Income (Loss), Net of Tax [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other comprehensive loss",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r10",
      "r131",
      "r207",
      "r210",
      "r244"
     ]
    },
    "cdxs_OtherInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "OtherInformationAbstract",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesOtherLeaseInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other information:",
        "label": "Other Information [Abstract]",
        "documentation": "Other Information"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other long-term liabilities",
        "label": "Other Liabilities, Noncurrent",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r75"
     ]
    },
    "us-gaap_OtherNoncashIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherNoncashIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Equity securities earned from research and development activities ($0, $0, and ($1,245) from a related party)",
        "terseLabel": "Other noncash income",
        "label": "Other Noncash Income",
        "documentation": "Amount of income or gain included in net income that result in no cash inflow (outflow), classified as other."
       }
      }
     },
     "auth_ref": [
      "r107"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and other expense, net ($0, $0 and $208 from a related party)",
        "verboseLabel": "Interest and other expense, net",
        "label": "Other Nonoperating Income (Expense)",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_OtherOperatingActivitiesCashFlowStatement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherOperatingActivitiesCashFlowStatement",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other non-cash items",
        "label": "Other Operating Activities, Cash Flow Statement",
        "documentation": "Other cash or noncash adjustments to reconcile net income to cash provided by (used in) operating activities that are not separately disclosed in the statement of cash flows (for example, cash received or cash paid during the current period for miscellaneous operating activities, net change during the reporting period in other assets or other liabilities)."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Performance Measure, Amount",
        "label": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r1124"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount",
        "label": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1085",
      "r1096",
      "r1106",
      "r1139"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Amount",
        "label": "Outstanding Recovery Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1088",
      "r1099",
      "r1109",
      "r1142"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Outstanding Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1088",
      "r1099",
      "r1109",
      "r1142"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1113"
     ]
    },
    "us-gaap_PaymentsOfDebtIssuanceCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsOfDebtIssuanceCosts",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Payment of debt issuance costs",
        "label": "Payments of Debt Issuance Costs",
        "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt."
       }
      }
     },
     "auth_ref": [
      "r25"
     ]
    },
    "us-gaap_PaymentsOfStockIssuanceCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsOfStockIssuanceCosts",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquityParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Costs incurred in connection with offering",
        "label": "Payments of Stock Issuance Costs",
        "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Taxes paid related to net share settlement of equity awards",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r218"
     ]
    },
    "us-gaap_PaymentsToAcquireOtherInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireOtherInvestments",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Investment in non-marketable securities",
        "terseLabel": "Investments in non-marketable securities",
        "label": "Payments to Acquire Other Investments",
        "documentation": "Amount of cash outflow to acquire investments classified as other."
       }
      }
     },
     "auth_ref": [
      "r103"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchase of property and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r104"
     ]
    },
    "us-gaap_PaymentsToAcquireShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireShortTermInvestments",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Purchases of short-term investments",
        "label": "Payments to Acquire Short-Term Investments",
        "documentation": "The cash outflow for securities or other assets acquired, which qualify for treatment as an investing activity and are to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term."
       }
      }
     },
     "auth_ref": [
      "r103"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Issuers, Footnote",
        "label": "Peer Group Issuers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1123"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Total Shareholder Return Amount",
        "label": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r1123"
     ]
    },
    "cdxs_PenobscotSpaceFiveYearRenewalOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "PenobscotSpaceFiveYearRenewalOptionMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Penobscot Space, Five Year Renewal Option",
        "label": "Penobscot Space, Five Year Renewal Option [Member]",
        "documentation": "Penobscot Space, Five Year Renewal Option"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/A401kPlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "401(k) Plan",
        "label": "Retirement Benefits [Text Block]",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r514",
      "r515",
      "r516",
      "r522",
      "r523",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r1009"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Actually Paid Compensation Amount",
        "label": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1115"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO",
        "label": "PEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r1132"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Name",
        "label": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r1125"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Total Compensation Amount",
        "label": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1114"
     ]
    },
    "cdxs_PerformanceBasedOptionsPBOsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "PerformanceBasedOptionsPBOsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PBOs",
        "label": "Performance Based Options (PBOs) [Member]",
        "documentation": "Performance Based Options (PBOs)"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PerformanceShareUnitsPSUsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "PerformanceShareUnitsPSUsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance Share Units (PSUs)",
        "label": "Performance Share Units (PSUs) [Member]",
        "documentation": "Performance Share Units (PSUs)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PBOs",
        "label": "Performance Shares [Member]",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PerformanceStockUnitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "PerformanceStockUnitsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PSUs",
        "label": "Performance Stock Units [Member]",
        "documentation": "Performance Stock Units"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PfizerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "PfizerMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pfizer",
        "label": "Pfizer [Member]",
        "documentation": "Pfizer"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_PiperSandlerCoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "PiperSandlerCoMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PSC",
        "label": "Piper Sandler &amp; Co [Member]",
        "documentation": "Piper Sandler &amp; Co"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Axis]",
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1274",
      "r1275",
      "r1276",
      "r1277",
      "r1278",
      "r1279",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285",
      "r1286",
      "r1287",
      "r1288",
      "r1289",
      "r1290",
      "r1291",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1296",
      "r1297",
      "r1298",
      "r1299"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Domain]",
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1274",
      "r1275",
      "r1276",
      "r1277",
      "r1278",
      "r1279",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285",
      "r1286",
      "r1287",
      "r1288",
      "r1289",
      "r1290",
      "r1291",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1296",
      "r1297",
      "r1298",
      "r1299"
     ]
    },
    "ecd_PnsnAdjsPrrSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsPrrSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Adjustments Prior Service Cost",
        "label": "Pension Adjustments Prior Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r1116"
     ]
    },
    "ecd_PnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Adjustments Service Cost",
        "label": "Pension Adjustments Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r1172"
     ]
    },
    "ecd_PnsnBnftsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnBnftsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Benefits Adjustments, Footnote",
        "label": "Pension Benefits Adjustments, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1115"
     ]
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, par value (in dollars per share)",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r472"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares authorized (in shares)",
        "label": "Preferred Stock, Shares Authorized",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r862"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares issued (in shares)",
        "label": "Preferred Stock, Shares Issued",
        "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r472"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares outstanding (in shares)",
        "label": "Preferred Stock, Shares Outstanding",
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r862",
      "r881",
      "r1382",
      "r1383"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, $0.0001 par value per share; 5,000 shares authorized, none issued and outstanding",
        "label": "Preferred Stock, Value, Issued",
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r772",
      "r1031"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Prepaid expenses and other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1203"
     ]
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid expense, current",
        "label": "Prepaid Expense, Current",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r200",
      "r382",
      "r383",
      "r961"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from issuance of common stock in connection with equity sales agreements",
        "label": "Proceeds from Issuance of Common Stock",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromIssuanceOfLongTermDebt",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from long-term debt",
        "label": "Proceeds from Issuance of Long-Term Debt",
        "documentation": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r826"
     ]
    },
    "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from maturity of short-term investments",
        "label": "Proceeds from Maturities, Prepayments and Calls of Short-Term Investments",
        "documentation": "The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r103"
     ]
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from sale of property and equipment",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_ProceedsFromSaleOfShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleOfShortTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from sale of short-term investments",
        "label": "Proceeds from Sale of Short-Term Investments",
        "documentation": "The cash inflow from sales of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term."
       }
      }
     },
     "auth_ref": [
      "r22"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Proceeds from exercises of stock options",
        "label": "Proceeds from Stock Options Exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r14"
     ]
    },
    "us-gaap_ProceedsFromStockPlans": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromStockPlans",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from issuance of stock under employee stock purchase plan",
        "label": "Proceeds from Stock Plans",
        "documentation": "The cash inflow associated with the amount received from the stock plan during the period."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_ProductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Product revenue ($0, $0 and $514 from a related party)",
        "terseLabel": "Product revenue",
        "label": "Product [Member]",
        "documentation": "Article or substance produced by nature, labor or machinery."
       }
      }
     },
     "auth_ref": [
      "r1000"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Axis]",
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r303",
      "r729",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808",
      "r955",
      "r1000",
      "r1041",
      "r1043",
      "r1044",
      "r1048",
      "r1050",
      "r1258",
      "r1259",
      "r1271",
      "r1347",
      "r1351",
      "r1352",
      "r1353",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Domain]",
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r303",
      "r729",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808",
      "r955",
      "r1000",
      "r1041",
      "r1043",
      "r1044",
      "r1048",
      "r1050",
      "r1258",
      "r1259",
      "r1271",
      "r1347",
      "r1351",
      "r1352",
      "r1353",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Axis]",
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r686"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisposals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentDisposals",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equipment retired during period",
        "label": "Property, Plant and Equipment, Disposals",
        "documentation": "Amount of divestiture of long-lived, physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment",
        "label": "Property, Plant and Equipment, Gross",
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r114",
      "r184",
      "r780"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Line Items]",
        "label": "Property, Plant and Equipment [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r686"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Property and equipment, net",
        "totalLabel": "Property and equipment, net",
        "label": "Property, Plant and Equipment, Net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r686",
      "r765",
      "r780",
      "r1031"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNetByTypeAbstract",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Net, by Type [Abstract]",
        "label": "Property, Plant and Equipment, Net, by Type [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and Equipment",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r163",
      "r168",
      "r778"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Estimated Ranges of Useful Lives of Property and Equipment",
        "terseLabel": "Schedule of Property and Equipment, Net",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Domain]",
        "label": "Long-Lived Tangible Asset [Domain]",
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "auth_ref": [
      "r114",
      "r686"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated useful life",
        "label": "Property, Plant and Equipment, Useful Life",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provision (recovery) for credit losses",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r217",
      "r358"
     ]
    },
    "us-gaap_PurchaseObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PurchaseObligation",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsOtherAccruedLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued purchases",
        "label": "Purchase Obligation",
        "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure",
        "label": "Pay vs Performance Disclosure [Table]"
       }
      }
     },
     "auth_ref": [
      "r1113"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure, Table",
        "label": "Pay vs Performance [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1113"
     ]
    },
    "cdxs_RSUsAndRSAsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RSUsAndRSAsMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "RSUs and RSAs",
        "label": "RSUs And RSAs [Member]",
        "documentation": "RSUs And RSAs"
       }
      }
     },
     "auth_ref": []
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Axis]",
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r424",
      "r425",
      "r426",
      "r427",
      "r515",
      "r533",
      "r564",
      "r565",
      "r566",
      "r578",
      "r653",
      "r699",
      "r708",
      "r725",
      "r809",
      "r811",
      "r819",
      "r852",
      "r853",
      "r908",
      "r914",
      "r918",
      "r919",
      "r923",
      "r951",
      "r952",
      "r981",
      "r996",
      "r1010",
      "r1022",
      "r1023",
      "r1027",
      "r1028",
      "r1043",
      "r1053",
      "r1253",
      "r1265",
      "r1319",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeMember",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Domain]",
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r424",
      "r425",
      "r426",
      "r427",
      "r515",
      "r533",
      "r564",
      "r565",
      "r566",
      "r578",
      "r653",
      "r699",
      "r708",
      "r725",
      "r809",
      "r811",
      "r819",
      "r852",
      "r853",
      "r908",
      "r914",
      "r918",
      "r919",
      "r923",
      "r951",
      "r952",
      "r981",
      "r996",
      "r1010",
      "r1022",
      "r1023",
      "r1027",
      "r1028",
      "r1043",
      "r1053",
      "r1253",
      "r1265",
      "r1319",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340"
     ]
    },
    "srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name of Property [Axis]",
        "label": "Name of Property [Axis]"
       }
      }
     },
     "auth_ref": [
      "r941",
      "r945",
      "r1388",
      "r1389",
      "r1390",
      "r1391",
      "r1392",
      "r1393",
      "r1394",
      "r1395"
     ]
    },
    "srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RealEstateAndAccumulatedDepreciationNameOfPropertyDomain",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name of Property [Domain]",
        "label": "Name of Property [Domain]"
       }
      }
     },
     "auth_ref": [
      "r941",
      "r945",
      "r1388",
      "r1389",
      "r1390",
      "r1391",
      "r1392",
      "r1393",
      "r1394",
      "r1395"
     ]
    },
    "us-gaap_ReceivableTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ReceivableTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivable [Domain]",
        "label": "Receivable [Domain]",
        "documentation": "Financing arrangement representing a contractual right to receive money either on demand or on fixed and determinable dates."
       }
      }
     },
     "auth_ref": [
      "r82",
      "r88"
     ]
    },
    "us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Revenues by Geographical Area",
        "label": "Reconciliation of Revenue from Segments to Consolidated [Table Text Block]",
        "documentation": "Tabular disclosure of all significant reconciling items in the reconciliation of total revenues from reportable segments to the entity's consolidated revenues."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r41"
     ]
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits [Roll Forward]",
        "label": "Unrecognized Tax Benefits [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1080",
      "r1091",
      "r1101",
      "r1134"
     ]
    },
    "us-gaap_RelatedPartyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party [Domain]",
        "label": "Related and Nonrelated Parties [Domain]",
        "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r309",
      "r524",
      "r689",
      "r690",
      "r769",
      "r777",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r880",
      "r882",
      "r907"
     ]
    },
    "us-gaap_RelatedPartyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party",
        "label": "Related Party [Member]",
        "documentation": "Party related to reporting entity. Includes, but is not limited to, affiliate, entity for which investment is accounted for by equity method, trust for benefit of employees, and principal owner, management, and members of immediate family."
       }
      }
     },
     "auth_ref": [
      "r230",
      "r231",
      "r689",
      "r690",
      "r691",
      "r692",
      "r769",
      "r777",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r880",
      "r882",
      "r907"
     ]
    },
    "us-gaap_RelatedPartyTransactionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Axis]",
        "label": "Related Party Transaction [Axis]",
        "documentation": "Information by type of related party transaction."
       }
      }
     },
     "auth_ref": [
      "r689",
      "r690",
      "r1332"
     ]
    },
    "us-gaap_RelatedPartyTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Domain]",
        "label": "Related Party Transaction [Domain]",
        "documentation": "Transaction between related party."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RelatedPartyTransactionMilestonePaymentReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RelatedPartyTransactionMilestonePaymentReceived",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MAI agreement milestone payment received",
        "label": "Related Party Transaction, Milestone Payment Received",
        "documentation": "Related Party Transaction, Milestone Payment Received"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transactions [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party [Axis]",
        "label": "Related and Nonrelated Parties [Axis]",
        "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest."
       }
      }
     },
     "auth_ref": [
      "r309",
      "r524",
      "r689",
      "r690",
      "r769",
      "r777",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r880",
      "r882",
      "r907",
      "r1332"
     ]
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Counterparty Name [Domain]",
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r232",
      "r233",
      "r444",
      "r474",
      "r692",
      "r709",
      "r766",
      "r963",
      "r964"
     ]
    },
    "us-gaap_ResearchAndDevelopmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development [Abstract]",
        "label": "Research and Development [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Arrangement, Contract to Perform for Others, Type [Axis]",
        "label": "Research and Development Arrangement, Contract to Perform for Others, Type [Axis]",
        "documentation": "Information by form of arrangement related to research and development."
       }
      }
     },
     "auth_ref": [
      "r582",
      "r1301"
     ]
    },
    "us-gaap_ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentArrangementContractToPerformForOthersTypeDomain",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Arrangement, Contract to Perform for Others, Type [Domain]",
        "label": "Research and Development Arrangement, Contract to Perform for Others, Type [Domain]",
        "documentation": "Listing of significant agreements under research and development arrangements accounted for as a contract to perform research and development for others."
       }
      }
     },
     "auth_ref": [
      "r582",
      "r1301"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Research and development",
        "label": "Research and Development Expense",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r581",
      "r953",
      "r975",
      "r1341"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and development",
        "label": "Research and Development Expense [Member]",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development Expenses",
        "label": "Research and Development Expense, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "cdxs_ResearchandDevelopmentRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ResearchandDevelopmentRevenueMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Research and development revenue ($0, $0 and $1,245 from a related party)",
        "terseLabel": "Research and development revenue",
        "label": "Research and Development Revenue [Member]",
        "documentation": "Research and Development Revenue [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date:",
        "label": "Restatement Determination Date [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1081",
      "r1092",
      "r1102",
      "r1135"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date",
        "label": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r1082",
      "r1093",
      "r1103",
      "r1136"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement does not require Recovery",
        "label": "Restatement Does Not Require Recovery [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1089",
      "r1100",
      "r1110",
      "r1143"
     ]
    },
    "us-gaap_RestrictedCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCash",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash, current",
        "label": "Restricted Cash",
        "documentation": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits."
       }
      }
     },
     "auth_ref": [
      "r1194",
      "r1210",
      "r1343",
      "r1346"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashAndCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash, current and non-current",
        "label": "Restricted Cash and Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r134",
      "r183",
      "r224",
      "r771"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Cash and Cash Equivalents [Axis]",
        "label": "Restricted Cash and Cash Equivalents [Axis]",
        "documentation": "Information by category of cash or cash equivalent items which are restricted as to withdrawal or usage."
       }
      }
     },
     "auth_ref": [
      "r66"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Domain]",
        "label": "Cash and Cash Equivalents [Domain]",
        "documentation": "Type of cash and cash equivalent. Cash is currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r183"
     ]
    },
    "us-gaap_RestrictedCashAndCashEquivalentsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashAndCashEquivalentsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash",
        "label": "Restricted Cash and Cash Equivalents, Noncurrent",
        "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage, classified as noncurrent. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r154",
      "r224"
     ]
    },
    "us-gaap_RestrictedCashAndInvestmentsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashAndInvestmentsNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash and investments, noncurrent",
        "label": "Restricted Cash and Investments, Noncurrent",
        "documentation": "The noncurrent cash, cash equivalents and investments that is restricted as to withdrawal or usage. Restrictions may include legally restricted deposits held as compensating balances against borrowing arrangements, contracts entered into with others, or entity statements of intention with regard to particular deposits classified as long-term; that is not expected to be released from such existing restrictions within one year of the balance sheet date or operating cycle, whichever is longer. Excludes compensating balance arrangements that are not agreements which legally restrict the use of cash amounts shown on the balance sheet. Includes noncurrent cash equivalents and investments that are similarly restricted as to withdrawal, usage or disposal."
       }
      }
     },
     "auth_ref": [
      "r937",
      "r938"
     ]
    },
    "us-gaap_RestrictedCashCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashCurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current restricted cash",
        "label": "Restricted Cash, Current",
        "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits."
       }
      }
     },
     "auth_ref": [
      "r1194",
      "r1210"
     ]
    },
    "us-gaap_RestrictedCashNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedCashNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted cash",
        "label": "Restricted Cash, Noncurrent",
        "documentation": "Amount of cash restricted as to withdrawal or usage, classified as noncurrent. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits."
       }
      }
     },
     "auth_ref": [
      "r154",
      "r1195",
      "r1210"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock",
        "verboseLabel": "RSAs",
        "label": "Restricted Stock [Member]",
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "RSUs",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RestructuringCharges"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Charges",
        "label": "Restructuring and Related Activities Disclosure [Text Block]",
        "documentation": "The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled."
       }
      }
     },
     "auth_ref": [
      "r409",
      "r410",
      "r412",
      "r415",
      "r420"
     ]
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring and related cost, number of positions eliminated, period percent",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated, Period Percent",
        "documentation": "The number of positions eliminated during the period as a percentage of total positions eliminated during the period in connection with the restructuring plan(s)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring charges",
        "label": "Restructuring Charges",
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r416",
      "r417",
      "r1254"
     ]
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringCostAndReserveAxis",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Type [Axis]",
        "label": "Restructuring Type [Axis]",
        "documentation": "Information by type of restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r412",
      "r417",
      "r418"
     ]
    },
    "us-gaap_RestructuringCostAndReserveLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringCostAndReserveLineItems",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Cost and Reserve [Line Items]",
        "label": "Restructuring Cost and Reserve [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r412",
      "r413",
      "r414",
      "r417",
      "r418",
      "r419"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accumulated deficit",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r126",
      "r775",
      "r816",
      "r818",
      "r830",
      "r863",
      "r1031"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Deficit",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r177",
      "r235",
      "r236",
      "r237",
      "r239",
      "r244",
      "r246",
      "r248",
      "r349",
      "r350",
      "r398",
      "r617",
      "r618",
      "r625",
      "r626",
      "r627",
      "r629",
      "r630",
      "r631",
      "r637",
      "r639",
      "r640",
      "r642",
      "r645",
      "r672",
      "r673",
      "r813",
      "r815",
      "r832",
      "r1382"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from Contract with Customer [Abstract]",
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails",
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total revenues",
        "terseLabel": "Revenues",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise."
       }
      }
     },
     "auth_ref": [
      "r146",
      "r147",
      "r262",
      "r271",
      "r272",
      "r293",
      "r299",
      "r303",
      "r305",
      "r307",
      "r508",
      "r510",
      "r729"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from Contract with Customer Benchmark",
        "label": "Revenue from Contract with Customer Benchmark [Member]",
        "documentation": "Revenue from satisfaction of performance obligation by transferring promised product and service to customer, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r307",
      "r1180"
     ]
    },
    "cdxs_RevenueFromContractWithCustomerPaymentTerms": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueFromContractWithCustomerPaymentTerms",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment terms",
        "label": "Revenue From Contract With Customer, Payment Terms",
        "documentation": "Revenue From Contract With Customer, Payment Terms"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for revenue from contract with customer."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r954"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognition"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Text Block]",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r499",
      "r513"
     ]
    },
    "cdxs_RevenueRecognitionAnnualPayment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueRecognitionAnnualPayment",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognition, annual payment",
        "label": "Revenue Recognition, Annual Payment",
        "documentation": "Revenue Recognition, Annual Payment"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionContingentAnnualPaymentsTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueRecognitionContingentAnnualPaymentsTerm",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent annual payments, term",
        "label": "Revenue Recognition, Contingent Annual Payments, Term",
        "documentation": "Revenue Recognition, Contingent Annual Payments, Term"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionContingentAnnualReceivableIncrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueRecognitionContingentAnnualReceivableIncrease",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent annual receivable increase",
        "label": "Revenue Recognition, Contingent Annual Receivable Increase",
        "documentation": "Revenue Recognition, Contingent Annual Receivable Increase"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionContingentReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueRecognitionContingentReceivable",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent receivable",
        "label": "Revenue Recognition, Contingent Receivable",
        "documentation": "Revenue Recognition, Contingent Receivable"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of days for payment",
        "label": "Revenue Recognition, Milestone Revenue, Number Of Days For Payment",
        "documentation": "Revenue Recognition, Milestone Revenue, Number Of Days For Payment"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RevenueRecognitionNumberOfAnnualPayment": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RevenueRecognitionNumberOfAnnualPayment",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue recognition, number of annual payment",
        "label": "Revenue Recognition, Number Of Annual Payment",
        "documentation": "Revenue Recognition, Number Of Annual Payment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance obligation",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r166"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected timing of satisfaction, period",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r167"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionPerformanceObligationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r167"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Performance Obligation, Expected Timing of Satisfaction",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]",
        "documentation": "Tabular disclosure of expected timing for satisfying remaining performance obligation."
       }
      }
     },
     "auth_ref": [
      "r1179"
     ]
    },
    "us-gaap_RevenuesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuesAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Revenues:",
        "terseLabel": "Revenues [Abstract]",
        "label": "Revenues [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revolving Credit Facility",
        "label": "Revolving Credit Facility [Member]",
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_RocheMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "RocheMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Roche",
        "label": "Roche [Member]",
        "documentation": "Roche"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RoyaltyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RoyaltyMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue sharing arrangement",
        "label": "Royalty [Member]",
        "documentation": "Money for usage-based right to asset."
       }
      }
     },
     "auth_ref": [
      "r1272"
     ]
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Adopted",
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1152"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Terminated",
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1152"
     ]
    },
    "country_SG": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "SG",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SINGAPORE",
        "label": "SINGAPORE"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockCommissionFeePercent": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SaleOfStockCommissionFeePercent",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, commission fee, percent",
        "label": "Sale Of Stock, Commission Fee, Percent",
        "documentation": "Sale Of Stock, Commission Fee, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SaleOfStockConsiderationReceivedOnTransaction": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SaleOfStockConsiderationReceivedOnTransaction",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from public offering",
        "label": "Sale of Stock, Consideration Received on Transaction",
        "documentation": "Cash received on stock transaction after deduction of issuance costs."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockConsiderationReceivedOnTransactionGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SaleOfStockConsiderationReceivedOnTransactionGross",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross proceeds from public offering",
        "label": "Sale of Stock, Consideration Received on Transaction, Gross",
        "documentation": "Sale of Stock, Consideration Received on Transaction, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SaleOfStockNameOfTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SaleOfStockNameOfTransactionDomain",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Stock [Domain]",
        "label": "Sale of Stock [Domain]",
        "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SaleOfStockPeriod",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, period",
        "label": "Sale Of Stock, Period",
        "documentation": "Sale Of Stock, Period"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockSecuritiesRegisteredAggregateAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SaleOfStockSecuritiesRegisteredAggregateAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, securities registered aggregate amount",
        "label": "Sale Of Stock, Securities Registered Aggregate Amount",
        "documentation": "Sale Of Stock, Securities Registered Aggregate Amount"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SaleOfStockValueOfSharesForIssuance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SaleOfStockValueOfSharesForIssuance",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of stock, value of shares for issuance",
        "label": "Sale Of Stock, Value Of Shares For Issuance",
        "documentation": "Sale Of Stock, Value Of Shares For Issuance"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Benchmark",
        "label": "Revenue Benchmark [Member]",
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r307",
      "r1180"
     ]
    },
    "us-gaap_SalesRevenueProductLineMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesRevenueProductLineMember",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationConcentrationRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Product and Service Benchmark",
        "label": "Revenue, Product and Service Benchmark [Member]",
        "documentation": "Revenue from specified product or service, when it serves as benchmark in concentration of risk calculation. Includes, but is not limited to, revenue from contract with customer and other sources."
       }
      }
     },
     "auth_ref": [
      "r1181"
     ]
    },
    "cdxs_SanCarlosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SanCarlosMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "San Carlos",
        "label": "San Carlos [Member]",
        "documentation": "San Carlos"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Accrued Liabilities",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Security, Excluded EPS Calculation [Table]",
        "label": "Antidilutive Security, Excluded EPS Calculation [Table]",
        "documentation": "Disclosure of information about security that could potentially dilute basic earnings per share (EPS) in future that was not included in calculation of diluted EPS."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Shares Not Included in Computation of Diluted Net Loss Per Share",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]",
        "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_ScheduleOfCashAndCashEquivalentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfCashAndCashEquivalentsTable",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalent [Table]",
        "label": "Cash and Cash Equivalent [Table]",
        "documentation": "Disclosure of information about cash and cash equivalent by type. Excludes restricted cash and cash equivalent."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Collaborative Arrangements and Non-collaborative Arrangement Transactions [Table]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Table]",
        "documentation": "Disclosure of information about collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r632"
     ]
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Components of Provision for Income Taxes",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years."
       }
      }
     },
     "auth_ref": [
      "r1307"
     ]
    },
    "us-gaap_ScheduleOfDebtInstrumentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDebtInstrumentsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/DebtTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Long-Term Debt Instruments",
        "label": "Schedule of Long-Term Debt Instruments [Table Text Block]",
        "documentation": "Tabular disclosure of long-debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the entity, if longer."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r50",
      "r53",
      "r64",
      "r123",
      "r125",
      "r992",
      "r994",
      "r1215",
      "r1325"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Significant Components of Deferred Tax Assets and Liabilities",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r1304"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Reconciliation of Provision for Income Taxes Calculated at the Statutory Rate to Provision for Income Taxes",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r591",
      "r1016",
      "r1302"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Stock-based Compensation Expense",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement."
       }
      }
     },
     "auth_ref": [
      "r56"
     ]
    },
    "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Long-lived Assets by Geographical Area",
        "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]",
        "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area."
       }
      }
     },
     "auth_ref": [
      "r112"
     ]
    },
    "srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment, Name [Axis]",
        "label": "Investment, Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r345",
      "r346",
      "r347",
      "r624",
      "r1176",
      "r1177",
      "r1178",
      "r1310",
      "r1311",
      "r1312",
      "r1313"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r985",
      "r1238",
      "r1239",
      "r1240",
      "r1241",
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248"
     ]
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Loss Before Income Taxes, Domestic and Foreign",
        "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]",
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions."
       }
      }
     },
     "auth_ref": [
      "r1214"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Inventory Components",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r89",
      "r90",
      "r91"
     ]
    },
    "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/DebtTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Maturities of Long-Term Debt",
        "label": "Schedule of Maturities of Long-Term Debt [Table Text Block]",
        "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPropertyPlantandEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Property, Plant and Equipment [Table]",
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r686"
     ]
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRestructuringAndRelatedCostsTable",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Cost [Table]",
        "label": "Restructuring Cost [Table]",
        "documentation": "Disclosure of information about restructuring cost. Includes, but is not limited to, expected cost, cost incurred, statement of income caption that includes restructuring cost recognized, and amount of restructuring reserve."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r412",
      "r413",
      "r414",
      "r417",
      "r418",
      "r419"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "documentation": "Disclosure of information about revenue from external customer and long-lived asset by geographical area. Long-lived asset excludes financial instrument, customer relationship with financial institution, mortgage and other servicing right, deferred policy acquisition cost, and deferred tax asset."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r93"
     ]
    },
    "cdxs_ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Right-of-use Assets and Lease Obligations",
        "label": "Schedule Of Right-of-use Assets And Lease Obligations [Table Text Block]",
        "documentation": "Schedule Of Right-of-use Assets And Lease Obligations"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r537",
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, RSA Activity",
        "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": [
      "r127"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, Stock Options, Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r13",
      "r127"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions",
        "label": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r129"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Assumptions Used to Estimate the Fair Value of Option Grants",
        "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions."
       }
      }
     },
     "auth_ref": [
      "r129"
     ]
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, RSU Activity",
        "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfStockByClassTable",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock, Class of Stock [Table]",
        "label": "Stock, Class of Stock [Table]",
        "documentation": "Disclosure of information about stock by class. Includes, but is not limited to, common, convertible, and preferred stocks."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r49",
      "r50",
      "r51",
      "r52",
      "r53",
      "r121",
      "r123",
      "r125",
      "r126",
      "r190",
      "r191",
      "r192",
      "r264",
      "r472",
      "r473",
      "r474",
      "r476",
      "r479",
      "r485",
      "r487",
      "r826",
      "r827",
      "r828",
      "r829",
      "r996",
      "r1175",
      "r1211"
     ]
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Reconciliation of the Beginning and Ending Amount of Unrecognized Tax Benefits",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r600",
      "r1015"
     ]
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Customers That Contributed 10% or More of Total Accounts Receivable",
        "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]",
        "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r34",
      "r35",
      "r36",
      "r61",
      "r133"
     ]
    },
    "us-gaap_SecuredDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SecuredDebtMember",
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Secured Debt",
        "label": "Secured Debt [Member]",
        "documentation": "Collateralized debt obligation backed by, for example, but not limited to, pledge, mortgage or other lien on the entity's assets."
       }
      }
     },
     "auth_ref": []
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r1062"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "us-gaap_SecurityOwnedNotReadilyMarketableAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SecurityOwnedNotReadilyMarketableAxis",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Owned Not Readily Marketable [Axis]",
        "label": "Security Owned Not Readily Marketable [Axis]",
        "documentation": "Information by name of not readily marketable security."
       }
      }
     },
     "auth_ref": [
      "r1342"
     ]
    },
    "us-gaap_SecurityOwnedNotReadilyMarketableNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SecurityOwnedNotReadilyMarketableNameDomain",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Owned Not Readily Marketable, Name [Domain]",
        "label": "Security Owned Not Readily Marketable, Name [Domain]",
        "documentation": "Name of the security category or actual security title."
       }
      }
     },
     "auth_ref": [
      "r1342"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentDomain",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Domain]",
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r146",
      "r147",
      "r148",
      "r149",
      "r262",
      "r267",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r285",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r299",
      "r300",
      "r301",
      "r307",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r397",
      "r414",
      "r419",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r972",
      "r975",
      "r976",
      "r985",
      "r1046",
      "r1347",
      "r1351",
      "r1352",
      "r1353",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Domain]",
        "label": "Geographical [Domain]"
       }
      }
     },
     "auth_ref": [
      "r305",
      "r306",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r751",
      "r752",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r846",
      "r849",
      "r850",
      "r911",
      "r916",
      "r922",
      "r926",
      "r936",
      "r941",
      "r942",
      "r943",
      "r944",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r956",
      "r1001",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1045",
      "r1053",
      "r1271",
      "r1347",
      "r1351",
      "r1352",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting [Abstract]",
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Segment, Geographical and Other Revenue Information",
        "label": "Segment Reporting Disclosure [Text Block]",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r149",
      "r262",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r282",
      "r284",
      "r285",
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r303",
      "r304",
      "r307",
      "r970",
      "r973",
      "r974",
      "r975",
      "r977",
      "r979",
      "r980"
     ]
    },
    "us-gaap_SegmentReportingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting",
        "label": "Segment Reporting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r287",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r302",
      "r305",
      "r971",
      "r972",
      "r978"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations": {
       "parentTag": "us-gaap_CostsAndExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general and administrative",
        "label": "Selling, General and Administrative Expense",
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpensesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingGeneralAndAdministrativeExpensesMember",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general and administrative",
        "label": "Selling, General and Administrative Expenses [Member]",
        "documentation": "Primary financial statement caption encompassing selling, general and administrative expense."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SeqWellMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SeqWellMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesCarryingValueandFairValueofSecuritiesDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "seqWell",
        "label": "seqWell [Member]",
        "documentation": "seqWell"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SeriesAAndBPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SeriesAAndBPreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series A and B Preferred Stock",
        "label": "Series A And B Preferred Stock [Member]",
        "documentation": "Series A And B Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SeriesAPreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series A Preferred Stock",
        "label": "Series A Preferred Stock [Member]",
        "documentation": "Series A preferred stock."
       }
      }
     },
     "auth_ref": [
      "r1196",
      "r1197",
      "r1267"
     ]
    },
    "us-gaap_SeriesBPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SeriesBPreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series B Preferred Stock",
        "label": "Series B Preferred Stock [Member]",
        "documentation": "Series B preferred stock."
       }
      }
     },
     "auth_ref": [
      "r1196",
      "r1197",
      "r1267"
     ]
    },
    "cdxs_SeriesC1PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SeriesC1PreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series C-1 Preferred Stock",
        "label": "Series C-1 Preferred Stock [Member]",
        "documentation": "Series C-1 Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SeriesCAndC1PreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SeriesCAndC1PreferredStockMember",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Series C And C-1 Preferred Stock",
        "label": "Series C And C-1 Preferred Stock [Member]",
        "documentation": "Series C And C-1 Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "verboseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period of units granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r1011"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Forfeited/Expired (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r556"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited/Expired (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r556"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, equity instruments other than options, grants in period",
        "verboseLabel": "Granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r554"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r554"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Non-vested, beginning of period (in shares)",
        "periodEndLabel": "Non-vested, end of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r551",
      "r552"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Non-vested, beginning of period (in dollars per share)",
        "periodEndLabel": "Non-vested, end of period (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r551",
      "r552"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant Date Fair Value Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other (in shares)",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Equity Instruments Other Than Options, Other In Period"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Other, Weighted Average Grant Date Fair Value",
        "documentation": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Other, Weighted Average Grant Date Fair Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Vested (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r555"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement."
       }
      }
     },
     "auth_ref": [
      "r555"
     ]
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration period of options upon employee's termination of service",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Expiration Period Upon Termination Of Service"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected dividend yield",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term."
       }
      }
     },
     "auth_ref": [
      "r565"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Volatility",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r564"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Risk-free interest rate",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r537",
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment ward, number of additional shares authorized (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized",
        "documentation": "Number of additional shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of shares authorized (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1013"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total shares remaining available for issuance (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Disclosures",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan."
       }
      }
     },
     "auth_ref": [
      "r545"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r545"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value of options exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares."
       }
      }
     },
     "auth_ref": [
      "r558"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Forfeited/Expired (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period",
        "documentation": "For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired."
       }
      }
     },
     "auth_ref": [
      "r1280"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited/Expired (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price of options that were either forfeited or expired."
       }
      }
     },
     "auth_ref": [
      "r1280"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r547"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average grant date fair value (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r557"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value, outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period (in shares)",
        "periodEndLabel": "Outstanding, end of period (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r543",
      "r544"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period (in dollars per share)",
        "periodEndLabel": "Outstanding, end of period (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r543",
      "r544"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price Per Share",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestAbstract",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable and Expected to Vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value, options vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r559"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested and expected to vest (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r559"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Options vested and expected to vest (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r559"
     ]
    },
    "cdxs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, performance goals achieved, superior level, shares eligible to vest, multiplier",
        "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier",
        "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Performance Goals Achieved, Superior Level, Shares Eligible To Vest, Multiplier"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, shares issued in period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period",
        "documentation": "Number of shares issued under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "cdxs_ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, consecutive offering period",
        "label": "Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period",
        "documentation": "Share-Based Compensation Arrangement By Share-based Payment Award, Consecutive Offering Period"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails",
      "http://www.codexis.com/role/StockbasedCompensationStockBasedCompensationExpenseDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Award [Domain]",
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r548"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r547"
     ]
    },
    "us-gaap_ShareBasedCompensationAwardTrancheOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationAwardTrancheOneMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tranche One",
        "label": "Share-Based Payment Arrangement, Tranche One [Member]",
        "documentation": "First portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationAwardTrancheTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationAwardTrancheTwoMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tranche Two",
        "label": "Share-Based Payment Arrangement, Tranche Two [Member]",
        "documentation": "Second portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost."
       }
      }
     },
     "auth_ref": [
      "r534",
      "r542",
      "r561",
      "r562",
      "r563",
      "r564",
      "r567",
      "r573",
      "r574",
      "r575",
      "r576"
     ]
    },
    "us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, Performance Shares Award Outstanding Activity",
        "label": "Share-Based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "cdxs_ShareBasedPaymentArrangementExpenseIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShareBasedPaymentArrangementExpenseIncreaseDecrease",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based payment arrangement, expense, increase (decrease)",
        "label": "Share-Based Payment Arrangement, Expense, Increase (Decrease)",
        "documentation": "Share-Based Payment Arrangement, Expense, Increase (Decrease)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedPaymentArrangementNonemployeeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedPaymentArrangementNonemployeeMember",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails",
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonemployee Awards",
        "label": "Share-Based Payment Arrangement, Nonemployee [Member]",
        "documentation": "Recipient, of award granted under share-based payment arrangement, over whom grantor does not exercise nor has right to exercise sufficient control to establish employer-employee relationship based on law of pertinent jurisdiction. Excludes nonemployee director treated as employee when acting as member of board of directors, if elected by grantor's shareholders or appointed to board position to be filled by shareholder election when existing term expires."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r539",
      "r540",
      "r541",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award vesting rights percentage",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage",
        "documentation": "Percentage of vesting of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1274"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity instruments other than options, aggregate intrinsic value, vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested",
        "documentation": "Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period",
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1012"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAssumptionsUsedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected life (years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r563"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate intrinsic value, exercisable options",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Intrinsic Value",
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining contractual terms, exercisable options",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining contractual terms",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r128"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationAwardActivityDetails",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average remaining contractual terms, vested and expected to vest options",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r559"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Option price as a percent of common stock",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent",
        "documentation": "Purchase price of common stock expressed as a percentage of its fair value."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated performance goal achievement rate",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Estimated Performance Goal Achievement Rate"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, maximum employee subscription amount",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Amount"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation arrangement by share-based payment award, number of installments",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Installments"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Threshold level multiplier",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier",
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Performance Awards, Threshold Level, Number of Shares, Multiplier"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance at beginning of period (in shares)",
        "periodEndLabel": "Balance at end of period (in shares)",
        "label": "Shares, Outstanding",
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Taxes paid related to net share settlement of equity awards (in shares)",
        "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation",
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_ShippingAndDistributionCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShippingAndDistributionCost",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shipping and distribution cost",
        "label": "Shipping And Distribution Cost",
        "documentation": "Shipping And Distribution Cost"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term investments",
        "label": "Short-Term Investments",
        "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r142",
      "r143",
      "r1202"
     ]
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermInvestmentsMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term Investments",
        "label": "Short-Term Investments [Member]",
        "documentation": "Investments which are not otherwise included in another category or item that the entity has the intent to sell or dispose of within one year from the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r927",
      "r928",
      "r929",
      "r957"
     ]
    },
    "us-gaap_ShortTermLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermLeaseCost",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails": {
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term lease costs",
        "label": "Short-Term Lease, Cost",
        "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less."
       }
      }
     },
     "auth_ref": [
      "r680",
      "r1030"
     ]
    },
    "cdxs_ShortTermUnbilledReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "ShortTermUnbilledReceivablesMember",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-Term Unbilled Receivables",
        "label": "Short-Term Unbilled Receivables [Member]",
        "documentation": "Short-Term Unbilled Receivables"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SitagliptinEnzymeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SitagliptinEnzymeMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sitagliptin Enzyme",
        "label": "Sitagliptin Enzyme [Member]",
        "documentation": "Sitagliptin Enzyme"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StateAndLocalJurisdictionMember",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "State and Local Jurisdiction [Member]",
        "documentation": "Designated state or local jurisdiction entitled to levy and collect income tax."
       }
      }
     },
     "auth_ref": [
      "r589"
     ]
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetailsNarrativeDetails",
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Axis]",
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r146",
      "r147",
      "r148",
      "r149",
      "r178",
      "r262",
      "r267",
      "r270",
      "r271",
      "r272",
      "r273",
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r280",
      "r281",
      "r283",
      "r284",
      "r285",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r299",
      "r300",
      "r301",
      "r307",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r397",
      "r400",
      "r414",
      "r419",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r972",
      "r975",
      "r976",
      "r985",
      "r1046",
      "r1347",
      "r1351",
      "r1352",
      "r1353",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "us-gaap_StatementClassOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementClassOfStockAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Axis]",
        "label": "Class of Stock [Axis]",
        "documentation": "Information by the different classes of stock of the entity."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r190",
      "r191",
      "r192",
      "r227",
      "r252",
      "r253",
      "r255",
      "r257",
      "r264",
      "r265",
      "r348",
      "r431",
      "r433",
      "r434",
      "r435",
      "r438",
      "r439",
      "r472",
      "r473",
      "r476",
      "r479",
      "r487",
      "r662",
      "r826",
      "r827",
      "r828",
      "r829",
      "r832",
      "r833",
      "r834",
      "r835",
      "r836",
      "r837",
      "r838",
      "r839",
      "r840",
      "r841",
      "r842",
      "r844",
      "r862",
      "r884",
      "r902",
      "r930",
      "r931",
      "r932",
      "r933",
      "r934",
      "r1175",
      "r1211",
      "r1220"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components [Axis]",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r81",
      "r85",
      "r86",
      "r177",
      "r212",
      "r213",
      "r214",
      "r235",
      "r236",
      "r237",
      "r239",
      "r244",
      "r246",
      "r248",
      "r263",
      "r349",
      "r350",
      "r398",
      "r489",
      "r617",
      "r618",
      "r625",
      "r626",
      "r627",
      "r629",
      "r630",
      "r631",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r642",
      "r645",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r672",
      "r673",
      "r688",
      "r783",
      "r813",
      "r814",
      "r815",
      "r832",
      "r902"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionDisaggregationofRevenueDetails",
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Axis]",
        "label": "Geographical [Axis]"
       }
      }
     },
     "auth_ref": [
      "r305",
      "r306",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r751",
      "r752",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r846",
      "r849",
      "r850",
      "r911",
      "r916",
      "r922",
      "r926",
      "r936",
      "r941",
      "r942",
      "r943",
      "r944",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r956",
      "r1001",
      "r1033",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1045",
      "r1053",
      "r1271",
      "r1347",
      "r1351",
      "r1352",
      "r1354",
      "r1355",
      "r1356",
      "r1357",
      "r1358",
      "r1359",
      "r1360",
      "r1361",
      "r1362",
      "r1363",
      "r1364",
      "r1365",
      "r1366",
      "r1367",
      "r1368",
      "r1369",
      "r1370",
      "r1371",
      "r1372",
      "r1373",
      "r1374",
      "r1375",
      "r1376",
      "r1378",
      "r1379"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r235",
      "r236",
      "r237",
      "r263",
      "r673",
      "r729",
      "r821",
      "r844",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r862",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r871",
      "r872",
      "r873",
      "r874",
      "r876",
      "r877",
      "r878",
      "r879",
      "r880",
      "r882",
      "r885",
      "r886",
      "r888",
      "r889",
      "r890",
      "r891",
      "r892",
      "r893",
      "r894",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r902",
      "r1054"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Cash Flows [Abstract]",
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Financial Position [Abstract]",
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Comprehensive Income [Abstract]",
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Stockholders' Equity [Abstract]",
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementTable",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlowsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations",
      "http://www.codexis.com/role/ConsolidatedStatementsofOperationsParenthetical",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r235",
      "r236",
      "r237",
      "r263",
      "r309",
      "r673",
      "r729",
      "r821",
      "r844",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r862",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r871",
      "r872",
      "r873",
      "r874",
      "r876",
      "r877",
      "r878",
      "r879",
      "r880",
      "r882",
      "r885",
      "r886",
      "r888",
      "r889",
      "r890",
      "r891",
      "r892",
      "r893",
      "r894",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r902",
      "r1054"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Price or TSR Estimation Method",
        "label": "Stock Price or TSR Estimation Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1084",
      "r1095",
      "r1105",
      "r1138"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockCompensationPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockCompensationPlanMember",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares issuable under the Equity Incentive Plans and ESPP",
        "label": "Share-Based Payment Arrangement [Member]",
        "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares."
       }
      }
     },
     "auth_ref": [
      "r1221"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock under employee stock purchase plan (in shares)",
        "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans",
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r80",
      "r81",
      "r126"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesIssuedForServices": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesIssuedForServices",
     "presentation": [
      "http://www.codexis.com/role/InvestmentsinNonMarketableSecuritiesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock issued during period, shares, issued for services (in shares)",
        "label": "Stock Issued During Period, Shares, Issued for Services",
        "documentation": "Number of shares issued in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Issuance of common stock in connection with an equity sales agreement, net of issuance costs (in shares)",
        "terseLabel": "Issuance of common stock, net of issuance costs (in shares)",
        "label": "Stock Issued During Period, Shares, New Issues",
        "documentation": "Number of new stock issued during the period."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r80",
      "r81",
      "r126",
      "r826",
      "r902",
      "r931"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesOther": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesOther",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock upon release of stock awards (in shares)",
        "label": "Stock Issued During Period, Shares, Other",
        "documentation": "Number of shares of stock issued attributable to transactions classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity",
      "http://www.codexis.com/role/StockbasedCompensationOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock upon exercise of stock options (in shares)",
        "negatedLabel": "Exercised (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r80",
      "r81",
      "r126",
      "r548"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock under employee stock purchase plan",
        "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan",
        "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r80",
      "r81",
      "r126"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock in connection with an equity sales agreement, net of issuance costs",
        "label": "Stock Issued During Period, Value, New Issues",
        "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r80",
      "r81",
      "r126",
      "r832",
      "r902",
      "r931",
      "r1060"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock upon exercise of stock options",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r81",
      "r85",
      "r86",
      "r126"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets",
      "http://www.codexis.com/role/ConsolidatedStatementsofStockholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total stockholders\u2019 equity",
        "periodStartLabel": "Balance at beginning of period",
        "periodEndLabel": "Balance at end of period",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r85",
      "r86",
      "r113",
      "r864",
      "r881",
      "r903",
      "r904",
      "r1031",
      "r1061",
      "r1213",
      "r1236",
      "r1323",
      "r1382"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stockholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.codexis.com/role/CapitalStock"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capital Stock",
        "label": "Equity [Text Block]",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r226",
      "r471",
      "r473",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r483",
      "r484",
      "r486",
      "r489",
      "r644",
      "r905",
      "r906",
      "r935"
     ]
    },
    "cdxs_StrategicCollaborationAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "StrategicCollaborationAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Strategic Collaboration Agreement",
        "label": "Strategic Collaboration Agreement [Member]",
        "documentation": "Strategic Collaboration Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsidiarySaleOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsidiarySaleOfStockAxis",
     "presentation": [
      "http://www.codexis.com/role/CapitalStockDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sale of Stock [Axis]",
        "label": "Sale of Stock [Axis]",
        "documentation": "Information by type of sale of the entity's stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SummaryOfOperatingLossCarryforwardsTextBlock",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Federal, State and Foreign NOL Carryforwards and Federal Research and Development Tax Credits",
        "label": "Summary of Operating Loss Carryforwards [Table Text Block]",
        "documentation": "Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization."
       }
      }
     },
     "auth_ref": [
      "r1305"
     ]
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "presentation": [
      "http://www.codexis.com/role/BalanceSheetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Details",
        "label": "Supplemental Balance Sheet Disclosures [Text Block]",
        "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity."
       }
      }
     },
     "auth_ref": [
      "r1193"
     ]
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofCashFlows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental disclosure of cash flow information:",
        "label": "Supplemental Cash Flow Information [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_SupplyAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "SupplyAgreementMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supply Agreement",
        "label": "Supply Agreement [Member]",
        "documentation": "Supply Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tabular List, Table",
        "label": "Tabular List [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1131"
     ]
    },
    "cdxs_TakedaPharmaceuticalCoLtdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "TakedaPharmaceuticalCoLtdMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Takeda",
        "label": "Takeda Pharmaceutical Co. Ltd. [Member]",
        "documentation": "Takeda Pharmaceutical Co. Ltd."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxCreditCarryforwardAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNOLCarryforwardsandFederalResearchandDevelopmentTaxCreditsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax credits, amount",
        "label": "Tax Credit Carryforward, Amount",
        "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r614"
     ]
    },
    "cdxs_TermLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "TermLoanMember",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesNarrativeDetails",
      "http://www.codexis.com/role/DebtNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term Loan",
        "label": "Term Loan [Member]",
        "documentation": "Term Loan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cdxs_TermOfCollaborativeResearchAndDevelopmentAgreement": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "TermOfCollaborativeResearchAndDevelopmentAgreement",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Term of collaborative research and development agreement",
        "label": "Term of Collaborative Research and Development Agreement",
        "documentation": "Term of collaborative research and development agreement."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Amount",
        "label": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r1123"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Vs Peer Group",
        "label": "Total Shareholder Return Vs Peer Group [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1130"
     ]
    },
    "us-gaap_TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled Receivable",
        "label": "Trade and Other Accounts Receivable, Unbilled Receivables, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for treatment of receivables that are billable but have not been billed as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r308",
      "r1198"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangement:",
        "label": "Trading Arrangement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1151"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangements, by Individual",
        "label": "Trading Arrangements, by Individual [Table]"
       }
      }
     },
     "auth_ref": [
      "r1153"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.codexis.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments [Domain]",
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r465",
      "r485",
      "r643",
      "r660",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705",
      "r706",
      "r707",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r784",
      "r1017",
      "r1020",
      "r1022",
      "r1023",
      "r1024",
      "r1025",
      "r1026",
      "r1027",
      "r1028",
      "r1032",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1231",
      "r1232",
      "r1233",
      "r1234",
      "r1315",
      "r1318",
      "r1319",
      "r1320",
      "r1321",
      "r1322"
     ]
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adoption Date",
        "label": "Trading Arrangement Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r1154"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arrangement Duration",
        "label": "Trading Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r1155"
     ]
    },
    "ecd_TrdArrExpirationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrExpirationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration Date",
        "label": "Trading Arrangement Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r1155"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Trading Arrangement, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1153"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title",
        "label": "Trading Arrangement, Individual Title"
       }
      }
     },
     "auth_ref": [
      "r1153"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Available",
        "label": "Trading Arrangement, Securities Aggregate Available Amount"
       }
      }
     },
     "auth_ref": [
      "r1156"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Termination Date",
        "label": "Trading Arrangement Termination Date"
       }
      }
     },
     "auth_ref": [
      "r1154"
     ]
    },
    "us-gaap_TypeOfArrangementAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TypeOfArrangementAxis",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Type of Arrangement and Non-arrangement Transactions [Axis]",
        "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]",
        "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations."
       }
      }
     },
     "auth_ref": [
      "r632"
     ]
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TypeOfRestructuringDomain",
     "presentation": [
      "http://www.codexis.com/role/RestructuringChargesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Type of Restructuring [Domain]",
        "label": "Type of Restructuring [Domain]",
        "documentation": "Identification of the types of restructuring costs."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r412",
      "r417",
      "r418"
     ]
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "US",
     "presentation": [
      "http://www.codexis.com/role/SegmentGeographicalandOtherRevenueInformationRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "UNITED STATES",
        "label": "UNITED STATES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "USGovernmentCorporationsAndAgenciesSecuritiesMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "U.S. agency securities",
        "label": "US Government Corporations and Agencies Securities [Member]",
        "documentation": "This category includes information about debt issued by US Government Corporations and Agencies. Investments in such US Government Corporations may include debt securities issued by the Government National Mortgage Association (Ginnie Mae) and by the Federal National Mortgage Association (Fannie Mae) and the Federal Home Loan Mortgage Corporation (Freddie Mac)."
       }
      }
     },
     "auth_ref": [
      "r1344"
     ]
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "USTreasurySecuritiesMember",
     "presentation": [
      "http://www.codexis.com/role/FairValueMeasurementsScheduleofCashCashEquivalentsandShortTermInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "U.S. treasury securities",
        "label": "US Treasury Securities [Member]",
        "documentation": "This category includes information about debt securities issued by the United States Department of the Treasury and backed by the United States government. Such securities primarily consist of treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years)."
       }
      }
     },
     "auth_ref": [
      "r966",
      "r1007",
      "r1009",
      "r1017",
      "r1344"
     ]
    },
    "us-gaap_UnamortizedDebtIssuanceExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnamortizedDebtIssuanceExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": -1.0,
       "order": 3.0
      },
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails": {
       "parentTag": "us-gaap_LongTermDebt",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/DebtNarrativeDetails",
      "http://www.codexis.com/role/DebtScheduleofLongTermDebtInstrumentsDetails",
      "http://www.codexis.com/role/DebtScheduleofMaturitiesofLongTermDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unamortized debt issuance expense",
        "negatedTerseLabel": "Less: unamortized debt issuance costs",
        "label": "Unamortized Debt Issuance Expense",
        "documentation": "The remaining balance of debt issuance expenses that were capitalized and are being amortized against income over the lives of the respective bond issues. This does not include the amounts capitalized as part of the cost of the utility plant or asset."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnbilledContractsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnbilledContractsReceivable",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionContractswithCustomerDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables",
        "label": "Unbilled Contracts Receivable",
        "documentation": "Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnbilledReceivablesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.codexis.com/role/ConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables",
        "label": "Unbilled Receivables, Current",
        "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnbilledReceivablesNotBillableAtBalanceSheetDate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnbilledReceivablesNotBillableAtBalanceSheetDate",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/RevenueRecognitionNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled receivables, not billable",
        "label": "Unbilled Receivables, Not Billable",
        "documentation": "Amount of unbilled receivables under long-term contracts that have not been billed and were not billable."
       }
      }
     },
     "auth_ref": [
      "r195"
     ]
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Security Market Price Change",
        "label": "Underlying Security Market Price Change, Percent"
       }
      }
     },
     "auth_ref": [
      "r1150"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance at beginning of year",
        "periodEndLabel": "Balance at end of year",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r584",
      "r600",
      "r1015"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reductions to tax position of prior years",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r601",
      "r1015"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and penalties recognized on the balance sheet",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r598",
      "r1015"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and penalties recognize in income tax expense",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense",
        "documentation": "Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r598",
      "r1015"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions based on tax positions related to current year",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return."
       }
      }
     },
     "auth_ref": [
      "r602",
      "r1015"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions to tax position of prior years",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r601",
      "r1015"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized tax benefits that would impact effective tax rate",
        "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate",
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate."
       }
      }
     },
     "auth_ref": [
      "r603",
      "r1015"
     ]
    },
    "cdxs_UpFrontPaymentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.codexis.com/20241231",
     "localname": "UpFrontPaymentMember",
     "presentation": [
      "http://www.codexis.com/role/CollaborativeArrangementsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Up-front Payment",
        "label": "Up-front Payment [Member]",
        "documentation": "Up-front Payment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.codexis.com/role/BasisofPresentationandSummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Use of Estimates",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r39",
      "r159",
      "r161",
      "r164",
      "r165"
     ]
    },
    "us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowanceDeferredTaxAssetChangeInAmount",
     "crdr": "credit",
     "presentation": [
      "http://www.codexis.com/role/IncomeTaxesNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (decrease) in deferred tax asset valuation allowance",
        "label": "Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount",
        "documentation": "Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset."
       }
      }
     },
     "auth_ref": [
      "r606"
     ]
    },
    "us-gaap_VariableLeaseCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VariableLeaseCost",
     "crdr": "debit",
     "presentation": [
      "http://www.codexis.com/role/CommitmentsandContingenciesLeaseCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable lease, cost",
        "label": "Variable Lease, Cost",
        "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases."
       }
      }
     },
     "auth_ref": [
      "r681",
      "r1030"
     ]
    },
    "us-gaap_VestingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VestingAxis",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting [Axis]",
        "label": "Vesting [Axis]",
        "documentation": "Information by vesting schedule of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1274",
      "r1275",
      "r1276",
      "r1277",
      "r1278",
      "r1279",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285",
      "r1286",
      "r1287",
      "r1288",
      "r1289",
      "r1290",
      "r1291",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1296",
      "r1297",
      "r1298",
      "r1299"
     ]
    },
    "us-gaap_VestingDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "VestingDomain",
     "presentation": [
      "http://www.codexis.com/role/StockbasedCompensationNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting [Domain]",
        "label": "Vesting [Domain]",
        "documentation": "Vesting schedule of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1274",
      "r1275",
      "r1276",
      "r1277",
      "r1278",
      "r1279",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285",
      "r1286",
      "r1287",
      "r1288",
      "r1289",
      "r1290",
      "r1291",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1296",
      "r1297",
      "r1298",
      "r1299"
     ]
    },
    "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year",
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1119"
     ]
    },
    "us-gaap_WarrantMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WarrantMember",
     "presentation": [
      "http://www.codexis.com/role/NetLossperShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Warrants",
        "label": "Warrant [Member]",
        "documentation": "Security that gives the holder the right to purchase shares of stock in accordance with the terms of the instrument, usually upon payment of a specified amount."
       }
      }
     },
     "auth_ref": [
      "r1051",
      "r1052",
      "r1055",
      "r1056",
      "r1057",
      "r1058"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average common stock shares used in computing net loss per share, diluted (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period."
       }
      }
     },
     "auth_ref": [
      "r251",
      "r257"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.codexis.com/role/ConsolidatedStatementsofOperations"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Weighted average common stock shares used in computing net loss per share, basic (in shares)",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period."
       }
      }
     },
     "auth_ref": [
      "r250",
      "r257"
     ]
    },
    "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested",
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]"
       }
      }
     },
     "auth_ref": [
      "r1117"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482338/360-10-05-4"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "470",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-1"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-1"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Subparagraph": "(c)",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-3"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-4"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-5"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-16"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-21"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-8"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482130/360-10-45-4"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-5"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "20",
   "Section": "25",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481284/470-20-25-2"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481142/505-10-45-2"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-10"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-4"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-5"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-8"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-1"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-20"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "845",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482864/845-10-50-1"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477734/942-470-50-3"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "825",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478898/942-825-50-1"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r82": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r84": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r85": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r86": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r102": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r103": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r104": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "250",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/250/tableOfContent"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-2"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.CC)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480091/360-10-S99-2"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481573/470-10-45-12A"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481284/470-20-25-10"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-6"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-6"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-7"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r129": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r130": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/810/tableOfContent"
  },
  "r131": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19"
  },
  "r132": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "820",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/820/tableOfContent"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r136": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r138": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r139": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r140": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r141": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r142": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r143": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r144": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r145": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r146": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r147": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r148": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r149": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r150": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-29"
  },
  "r151": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-7A"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2"
  },
  "r153": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "210",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-20"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "SubTopic": "210",
   "Topic": "954",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477220/954-210-45-5"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482989/270-10-45-6"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "808",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479402/808-10-50-1"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r159": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r160": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "808",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479402/808-10-50-1"
  },
  "r161": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r162": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r163": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-1"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-11"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r166": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r168": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-6"
  },
  "r169": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r170": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r173": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "808",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/808/tableOfContent"
  },
  "r174": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r175": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "a",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "a",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r178": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "r179": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-3"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-1"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-3"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "36",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-36"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/310/tableOfContent"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479391/326-20-30-4A"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479391/326-20-30-5A"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479366/326-20-35-8A"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-5"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-11"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-14"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-16"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-17"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-21"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-3C"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-3D"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.M.2.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483530/326-20-S99-1"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479175/326-30-30-1B"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "13A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479148/326-30-35-13A"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479148/326-30-35-7A"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479130/326-30-45-1"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-3A"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-3C"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-3D"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-4"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-7"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-4"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-2"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "410",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481999/410-20-25-4"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "410",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481850/410-20-50-1"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/420/tableOfContent"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-1"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-3"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-17"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-19"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/715/tableOfContent"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480126/715-20-S99-2"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480266/715-60-50-3"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480794/715-70-50-1"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483044/730-10-05-1"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483041/730-20-50-1"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-10B"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10A"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478758/740-323-25-1"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "808",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479402/808-10-50-1"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6B"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482477/820-10-65-13"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/830/tableOfContent"
  },
  "r664": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-1"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-2"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481444/860-30-45-1"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-9"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-11"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-2"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "330",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478411/912-330-50-1"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "280",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(1)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r774": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r776": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r777": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r778": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r779": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r780": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r781": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(d)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r804": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r805": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r806": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r807": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r808": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r809": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r811": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r812": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r813": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r814": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r815": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r816": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r817": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r818": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r819": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.W.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1"
  },
  "r820": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r821": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r822": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r823": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r824": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r826": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r827": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r828": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r829": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r830": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-2"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-27"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478494/946-205-50-7"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-21"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-2"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r852": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r857": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r879": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478297/946-220-50-3"
  },
  "r885": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r887": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r888": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r890": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r896": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r897": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r898": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r899": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r901": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r902": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r903": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r904": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r905": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r906": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r907": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r908": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r910": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r911": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r912": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "12",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-12"
  },
  "r913": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "19",
   "Subparagraph": "(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-19"
  },
  "r914": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r915": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r916": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r917": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r918": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r921": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r922": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r923": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r924": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r925": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r926": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r927": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r928": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-1"
  },
  "r931": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r932": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r933": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r934": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r935": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6"
  },
  "r936": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Column A)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r937": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477220/954-210-45-4"
  },
  "r938": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478600/954-210-50-2"
  },
  "r939": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2"
  },
  "r940": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1"
  },
  "r941": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r942": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r943": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r944": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r945": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E)(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r946": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r947": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r948": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r949": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r950": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r951": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1"
  },
  "r952": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1"
  },
  "r953": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r954": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r955": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r956": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(b)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r957": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "SubTopic": "320",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r958": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r959": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r960": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r961": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r962": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-16"
  },
  "r963": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-21"
  },
  "r964": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-22"
  },
  "r965": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r966": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r967": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52"
  },
  "r968": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r969": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r970": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r971": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r972": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r973": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r974": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r975": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r976": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r977": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r978": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r979": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r980": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r981": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A"
  },
  "r982": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "79",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479294/326-20-55-79"
  },
  "r983": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "80",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479294/326-20-55-80"
  },
  "r984": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479081/326-30-55-8"
  },
  "r985": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24"
  },
  "r986": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r987": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r988": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r989": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r990": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482395/460-10-55-27"
  },
  "r991": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r992": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B"
  },
  "r993": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C"
  },
  "r994": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69E"
  },
  "r995": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69F"
  },
  "r996": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r997": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r998": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r999": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1001": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1002": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1003": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1005": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1006": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1007": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17"
  },
  "r1010": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8"
  },
  "r1011": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1012": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1013": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1014": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483385/720-35-55-1"
  },
  "r1015": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "217",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r1019": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r1020": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "103",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1024": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1025": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1026": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1027": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1028": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1029": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8"
  },
  "r1030": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53"
  },
  "r1031": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10"
  },
  "r1032": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481395/860-30-55-4"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1048": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r1049": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-17"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r1051": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12"
  },
  "r1062": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r1064": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-23"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r1066": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r1067": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K"
  },
  "r1070": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1074": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r1077": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r1078": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1080": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r1081": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1082": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1083": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1084": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1085": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1086": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1087": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1088": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1089": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r1090": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r1091": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r1092": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r1093": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r1094": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r1095": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r1096": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r1097": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r1098": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r1099": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r1100": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r1101": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r1102": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r1103": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r1104": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r1105": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r1106": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r1107": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r1108": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r1109": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r1110": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r1111": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r1112": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r1113": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r1114": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1115": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1116": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r1117": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "i"
  },
  "r1118": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r1119": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iii"
  },
  "r1120": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iv"
  },
  "r1121": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "v"
  },
  "r1122": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "vi"
  },
  "r1123": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r1124": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r1125": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r1126": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r1127": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r1128": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r1129": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r1130": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r1131": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r1132": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r1133": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r1134": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r1135": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1136": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1137": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1138": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1139": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1140": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1141": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1142": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1143": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r1144": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r1145": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r1146": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r1147": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r1148": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r1149": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r1150": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r1151": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r1152": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r1153": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r1154": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r1155": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r1156": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r1157": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1158": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106"
  },
  "r1159": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1160": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1161": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1162": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1163": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r1164": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r1165": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r1166": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r1167": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1168": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1169": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Number": "229",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1"
  },
  "r1170": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "A",
   "Number": "229"
  },
  "r1171": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Number": "229"
  },
  "r1172": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "i",
   "Number": "229"
  },
  "r1173": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r1174": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r1175": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-3"
  },
  "r1176": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-2"
  },
  "r1177": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-2"
  },
  "r1178": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-2"
  },
  "r1179": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(1)",
   "SubTopic": "10",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r1180": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1181": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1182": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r1183": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "SubTopic": "20",
   "Topic": "842",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r1184": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r1185": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r1186": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r1187": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r1188": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r1189": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r1190": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r1191": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r1192": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r1193": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/210/tableOfContent"
  },
  "r1194": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1195": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1196": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1197": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1198": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1199": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1200": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1201": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1202": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1203": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1204": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r1205": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r1206": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r1207": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r1208": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r1209": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r1210": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r1211": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1212": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1213": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1214": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1215": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r1216": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r1217": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r1218": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r1219": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r1220": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "55",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-55"
  },
  "r1221": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r1222": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r1223": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18"
  },
  "r1224": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r1225": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r1226": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1227": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1228": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2"
  },
  "r1229": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-1"
  },
  "r1230": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r1231": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9"
  },
  "r1232": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1233": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1234": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1235": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-4"
  },
  "r1236": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r1237": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1"
  },
  "r1238": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1239": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1240": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1241": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1242": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1243": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1244": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1245": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1246": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1247": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r1248": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r1249": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r1250": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r1251": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r1252": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r1253": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10"
  },
  "r1254": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482047/420-10-45-3"
  },
  "r1255": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r1256": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r1257": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r1258": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r1259": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r1260": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-3"
  },
  "r1261": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r1262": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r1263": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1264": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1265": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r1266": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r1267": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r1268": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1"
  },
  "r1269": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-3"
  },
  "r1270": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r1271": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r1272": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1273": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r1274": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1275": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1276": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1277": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1278": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1279": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1280": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1281": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1282": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1283": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1284": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1285": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1286": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1287": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1288": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1289": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1290": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1291": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1292": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1293": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1294": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1295": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1296": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1297": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1298": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1299": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1300": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1301": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "730",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483041/730-20-50-1"
  },
  "r1302": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r1303": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r1304": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r1305": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r1306": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-6"
  },
  "r1307": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r1308": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r1309": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r1310": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A"
  },
  "r1311": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A"
  },
  "r1312": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A"
  },
  "r1313": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A"
  },
  "r1314": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r1315": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r1316": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1317": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1318": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1319": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1320": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1321": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r1322": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r1323": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r1324": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-1A"
  },
  "r1325": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r1326": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-3"
  },
  "r1327": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r1328": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479365/842-20-25-6"
  },
  "r1329": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r1330": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r1331": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r1332": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3"
  },
  "r1333": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r1334": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r1335": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1336": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1337": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1338": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1339": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1340": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1341": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "912",
   "SubTopic": "730",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1"
  },
  "r1342": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r1343": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r1344": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-2"
  },
  "r1345": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r1346": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r1347": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B"
  },
  "r1348": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1349": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1350": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1351": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1352": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1353": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r1354": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r1355": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r1356": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1357": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1358": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1359": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1360": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1361": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1362": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1363": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1364": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1365": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1366": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1367": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1368": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1369": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1370": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1371": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1372": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1373": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1374": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1375": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1376": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1377": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-1"
  },
  "r1378": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1379": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1380": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r1381": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r1382": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r1383": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r1384": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r1385": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r1386": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r1387": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r1388": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1389": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1390": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1391": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1392": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1393": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1394": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r1395": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>114
<FILENAME>0001200375-25-000003-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001200375-25-000003-xbrl.zip
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
M,;:F]:^[[5JU'K]*6M3=IGU1/7Z5"V]96L JIU9WV_#E]/AJL-ZN=<Y/6P]
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
M_.3<_'+F&#)6R]?>Z0U>;A]W]_1.Q34BHK\COJY$=I6W[P+9%<5..N+.T$^
M,LZ4L]@!E81[)VHR51P$SGH^OMR2/']K79'.=B8TN>+>\N"7YAA>,<+'FAZ;
M-G&-FSQ4>VWO.5\\S>(8/OB)J/5O>-&R'\V_U]UY_Y&[I/<*/D==M+C)&PYB
MCTN?0[;P<A3/#'%[&KW,:?3"FD?KS^U3;-&5^)0UM? 8'+(@T>?@OCP']^:<
M@X:HMW4AESL.;ZY[%_US//<>.1*=EST-Q6+Y(8(')YT]LD=??'4*!V2J><<1
M)KHSC*.Q(T3HC_^WDT8K>]?N\I+:GG4^C<9C/T'<Q_GD@\2^B'9/G.6W^!DA
M-?@DW Q'F]K!!XA)M;$V9&O_AP^T>9"&=?:H(*G'W4@DB)YD0-T8[WJ.R!3K
M><UO_00Y/[V *VI-#Y%:'G_PDX9@N//0W;5'6UB.W]Z</3 WI1D[T=")]4P=
MECC)A+N(67J.'SI^FCCNB,4PU+=+VN)S(:R7U42.CW>/]KN+%)%%ZL/>P>[Q
M$^K#TJ_:/6C/O_+L-^WOM@\>5X_^O$XCY6 %6LW\T_BY6Q3V7A1/Y%XG;_JI
M\)OC%BTH.(BU(C*=\DD<W>%[<J/@"(V"@-VSF*]?TQ%\NNKU/5I*:90XW0_-
MJ>XL<\,>SJ571G1^+QZ9QSOO#]O-UM%AY_CX^%%N>&+721F',A%6T$FBP/<<
MM1S/7M^7X9KY*_R&-I8#JF $NF#L_">+_<3S75('X?3PS4U(M\6W+/3_H+_?
MOM(=M$'D/]^]WNWO.C+<(G:*VP=UU;?S-H8:IGQ9EW3KQQF@A:LA3SI]V\'B
MVU9KS(]]SPOX7&^?U#WV%B@W=9![/<^+>9+(_\%JSFWM>FGMO.^T6LX5#Z-!
MXD:I\S'V[V;.PL:S+1+YL5/XYV5\$]WK$[?=WGE_S;W[""Q)O+JR3Y&HNHRO
MX(P'L;2\"M#N@%H/5(7;0Y\]KLZ_,DEFB;!:[[:XBH Q@O_C3X3B*)FBN_/^
M>*]UT+5'#UB#GK7D*2 7"@_\20Q[RY^PP.$/W,U2D!7P,QP(/-D>]_6F,NP
M![? G!-](7ZYA/7_LI+@"*>2HS=_^\M1IWWX4^*D/."3411R)R2=OX&J:Y A
M;1RP_1@0UN-K<OTM,>;'L"OGS3/<9"C68#H%4;:W\_Y@OU469&^?&[GQ)0(N
MO<(U+)I-[?V=]WN==O,(^.A/AG L9)PG@$?C+5TKV.\I')+ZSOJI#]\23,IC
M[CE769QDB,"ED0-WX$/2$]]Y,Y!T MF+:'S/34^LC#=9A&%UCW:/VIV5P&'M
MX]W6X?Y*7D6C6I>WT#8[[C&&O/'3@'#@,^:.'.K8?%(?Q?"'9Q\S.@'ZT_$
M)ODF>?N*)G\A/0!$^;,'=\3"6_@A=.Y'/OR2RZ>3Y^B\-BH\/^I&EU)[VNX,
M:+_HD^] N.]@S?IIY'YO.!,6.W<LR+CS5Y*6;?29.LEHY?!R;==2;CFQX_1"
MHF?MX[_ZVS4J\)O:E,('688S.%PM(1E'(-) 2;A@B<=^=SX'T0 ,M3ZHOF[J
M8+@J3Y]OSA[;)O?*;LYYJ[U:'>QV5@=S+D /7FPHO;C+LW-P_%S-K'VTNW?T
MO."KQ6%<AWNK4<SVCG</5^0];;?A5:O1/#N[1X<'EJW4:L=T_'Q=N-VQ"]99
M1B[LO#\//?1><&<P==P1=[\[6#W<\<76-J(A_,1ASCT/@N;W,+J'87*6P)[W
MX$*2(8# $L?C0S\4P1+7&6SXO=:^(X6$(65 7NS^V$D6XP1L6L5_\V3#9J3#
M'3=J5L^%Q'\#?O\5V;TON?V<F%TK&,=@-D2KU=*L6S.= /*49K3Y C",4OCE
M]\Q'#0D4HR$&*,840IPXDUF-"8-EHSC_BX)F<ZUI*P5MG]%6"J(4_&<49&'*
M8@JKC1.='-;:2K]52#\=;&&/]+L?<8IO*HG -^VWS@CT/)1[GL."0 L_4RH.
MN+P!WED4A 4!:&B$&FT#H8B7,6O \2C+GVZ=Q-SEA$RV.P[E,R7.&WC?$/X_
MR=R1DXPB#,M5$?GIB*7EL=^S9%9VT\-R#F]!A0T]YTU'S'' .1 C&_P'P0*X
MGVZ%AW 4\CV82I+0(&B0+$F=XY;CL6FR:9+]N1)#IJ>)[!J$MU*69KG@:,NS
MXM5)COK/"@7^1DUHWA'_:@4\"CZ0>6,_34%*$E :1R%.)9@Z6%MJZIPCLLE<
MBG3YR%(FLG1*\C]_AZD5FYC -;_- A$UV6_>.&\043S\R>ET.[L:-? IWV*"
M^1;K/@W$@+60Y\G;UR["#3HCF:5$UR*\LQ7A=9W5ZQ7AH'ALO @GG#9@,6C3
MS'5!A,<,Y3 *-01IP[F_.K"'FW,O)&.0_?"56*ERL)IC6(-I Q5Z4('1.W/K
MW,;1?3I2UW9!N><T,$*$*5N6PB4Q_JP#<YP_/+K:_JFA;EMT ^GI\I[%XYMS
M\X+AJCL5;-WN#)H=9::8MLESHB'6%)E?Y3[[,I]LKT":_(E<C7JBH;U72-S-
MV:!_)DT^/@5BWT;Q=$Y$!=U$;.#*F_+@BDX7-8DYI\8+YHTN%4!+//CB].C,
MTQ^7S9G9(('R7);LXWG^(4O@14GR9'FRO9WW_44*P)8/E^##)67?7(9<[6VO
M@[W/I ;ZF1304\&I3Y8?ZNSOO#^;K[N^!@M\O:9=I<[G(5ID"\P2S,E9TC>-
MN!VA=7 (HY,ZC9PL$1883)[J^,TK7 06''XKF.+'[WWX-'S6"6%J$0K4.S^A
M0SUDH>NS #5_+"F!-V.'!(_%7N)@ JGOE9"^W.WSAKV=9TEM&KKVDB@R26_K
M<0C#3RC/9HRE1V.<I2G'W&-D$. 5+*L#0V.WY$_3&6HL24 #P)\4__#AD!,>
M&<KD2WS21Y@R!.9$T1M'@1/!LAD\FZL%%/*J.7.OM?=FD/LB63Q@\-KFY4/
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
M=.:*#Q(K],J_NKAERC^*C30SCB3UQ_!B]7,4YR]!V#S+/XF+F/@@*W"+/$Q
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
M.\,H!'$/KT.Q Z>Y3\LL[C<@8IPO\&,TIK?!ET/08!S%H?!Q8;6Z!.L) UK
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
MM.14DBKQ'1ZIT@ZA<S2GMV8&6'7%FZ9?CQ"XQ8YD7$]3*T#3CA9L0J"L4@9
M$8C)V@Q5,I<":_.<*>%T(?/TP1?$UVE4]3<#KP3Q/QC$MV].3\D]F88I-* B
M2\#X,O2_Y/D1N&50VT4%##:,@@&B">8\P%Z2S%WP[B:+.8V<'XRD@]RYR"$A
MS*T4?("PB&!,"I8@/<\<AVFM4(87N@Q(QAA1$0N<OHKETTAK7,*5,>'"(RTG
M*7>MJ6(Y-P5T),D_CI)FX?Z*N3"=R9,J,VZG(F<,U.\&12LT]0YLS$ JBZ(V
MA!,((Q[DW&FTN)P$*[DHM#W*,)09=;ZY+^6D5"80YM# RJ'BC4GMA$NQ(9<.
M0%H]A@[SK\55!9)&8VGZ"(R?46XY+2SES^%;@5N82*.9#;TQ#Y!$1!FBWHQ-
MNJ3U2 ,WU6 <7,"R$,7SY9UT06+0E#MU QU/@[?IA$M-* V&44I2@I1XC&5Q
M%(H-&.4G\0<X01.T3A0GD;M:PG.P+RDP0',HJ/WDTZ:8EH*B@#-^AAIOIT0Q
M586B)B!.G=L@&I"S=\'ZWH\BY302#B-AB^;A*3K(UCS1*#DR,8YAY.,QYY*S
M58BNQX=D\V( ,.9+DHD'BWT;8<07#G)A$)5.^A415(4MJ7-T'PVJ6EEXT4N1
MLD?L^)&[% TCTD&Z[4;N?D]X$)ARWEQ^$D9%(A<XW4HHGGBI?5!0Y,714RER
MIX($<UU:!P21,S>7A)207C>1\9LY,^*I5 (OQ%D-86P)^"C PBA3D+ \+ ?<
M^ZA+!#)9>$[<A;%,\Z,<L.(!*K?-[WX@@HKI]#?47)#F5+YE+(XV$67#'QBJ
MV+,[ A[^"A_\WG#ZL!$FSM_@OI^<C]$(S#.KW9<TZD?=VR\UH%SG*@6?)Z"D
MWP;^! 2\0+$)($1%XQ8-+1DP_M^]BV__/.\UD!3?8,,PJKY*!W+B?!X/?K&;
M#E6NO%PN>Y>G8E<RB9Q?_WUY?7[A7!7/N=-HM^%\2;W=+7<M&L*O4W3KV+LZ
M53.70HA*4N_.!],BCAX3>7+?ZE/O\]G7F[-^3[ KK;J^].'L\I^]O-:-^F8*
M1VRJ_:_H[Q??&01@ZB+N962J)!E9_@3RD!%5J)R3Z_]YUM@D&P2H5>FNRXFJ
M#9&*4QV=Q'738$K!T4)](7LG=C!=<BSLX9FLCR0*O-D8#TD@)PJIZDX1@B3\
M5E9QN9=A_J1U$&("WRO&GSYB+RW0DAZ)V:14J4=, O0#/V"ENX2&I$.J^9/6
M@#.T4A:@-; '%D"5PJ (W)AP.IX[0,>.*"I'_^XZ>= PU@-*5,9GOA71>2TC
MZ=THQ%@%BO$)C0"B^>HQ\HTPAG)]G';LW%0%4:\FEKF@F'\8RF@E$8:/,4;^
MA (C1% _0794W3#/<<6J6.)>C:E'!._  M=-1F"IOD!6C\IW+::L+=RZ8NN\
M2:<3">;G1DG!3A'6R-LBG9%<"R.NI;\$]&J5K:VRQ(RP\PFR5-V6>584DU%L
M+&A. 9%%I.* .::+)9S%&'M0+*-4J!VG78&Y?TP$"BQ\6@8O*.S7H"=UJ!:9
M?[! ,L2<(@/@3-=BG@Y.$40A:VLN_M90-?Z97RN.W%^)"(H0,+J,"N$J>$4G
MH8B#HW!L%,+&82@A-RJ3:MRRG'V *!J6Z:(P?W$V%B8K*)*O2@S'"RH<Z!W
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
MA']3TV7ASY&)9RQ1G@ 9'BL1&9UI6BXA+/57$39.<4ETZI,VMKP+;<N /\Z
MICRODM=V,8QL)B#3Z$\DPTVQ?=(\IP58";DYL,"2,@PH6;JZ7+E:Q'>0]X2Z
MM**N=W[Q4;*V+!9LLJI1CT>H6OHT7-QP8+YM;558@0Z*!^5"%K;+8^)Q1ODT
M\\H\8$^6\2H9LTN=@:6%5ZP!K@D@+#Q-P5(5(RJIER)<!IJRB-9HY\\F:>;Y
MSP@V?;[<J)P@CPB4BL<V7ZY<RI2@OC"^B9^$EJF2A6)^FP4LKTZJ? B-4CR<
M*%U*[M8\$.#TJVZ!['B1FXTU[BJW'6(]YOZ6+")LFQ)B86 $!L\IE, 8I^K<
MK*+68]5Z+6_E; 9".9^P+C3>_!%5YYX'6ILOJB,9%;H_?>P]'8U:%Q#Q2MM"
MI[ESZ=(HNJ.<2G//'7NFO:S[4H58+RKQ4_1/YAU6J(0E^@QFBZ?EF(E93G:Y
MD$'R1B'RD?(Q=:"G B[)%)L5D=FH7SVG&EC!CM2EQ7*L_7L8W0?<D_V.9LN-
M%0NJB(BB8F$5"?KI^DES @V*=9Y <R0*^HS423U\(_-*IW\HM%6AHGDE,;]<
M#,H8^VS%V.6ZS,R)5J398;2HJK7I*B1MS+[S(D(FL"+EN#&K4C%1I8_% H,H
M5B1[I(;;KHIV+UP5_:A$KHH,/HF G=.HB2XI09UYA?B ]?[#W3RGQP\I]:&P
MBM031[@3945>P]%,C"?C8T43+MC$($#ON,ZXG,N#N7])^-VH9A%I'50Q!/GK
M].._F@=8^R1RKH:P;>-B8H#X39\.!"B(M;SJ_>O+Y3_//S94FRX!RC'93W;
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
M)"#\@E#:)Z?9P"=(/T?_3%/^[)Q^_'J9"'<6!909WQ95.;&4O2Z$2E_ <:C
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
M._;,$7GRYBPPRKQ"%/&&7\S[3^%"DE/2HX:N:%2)2[_#H24[G_RH]I-[;OF
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
MKP!OL]=%TT3@*W8Z(6-+'_)1>4@ZO/V\TV-P\!,YZ</A]?R7)S',D#.3&&0
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
M0>I%VP#KHGD'PK89];%2L6=57?CS8^EP.@>?F0]KZWXE)#Y7'#5Z '*KJ#+
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
M#";9V/!$)I#4+ \#N#)!=8V6U^Q)AOSY<)NJ?K+WV-8@SS.H,6W,](:2AVE
M%]+KC1U0G@<:OO%YOXK ZK=0T@=_W]P"B5<PFX!("7"!G1*:V"R!X9#K&EI@
M0=EA8.FY]Q0VK06PQH?F#$TDV>P-Z95YLITL?G-G?LVMT1.V?H?:9F)\'STX
MU#9OJ2LTDA?#'1E2\03B'.QT]=#$%3..%[*-.(6FC9Y8^>!Z&?CEQLRQAKY,
MYU.2'L)*\I&7&=JX3=U*$G3SHHEID%XS@[/Z AH[*R/7E5T)[+\F4;"H-A3M
M>)YOFQE:)%O(3$Q"TE:.HR7V3H13"8/PSMF BQZ,(D)),P?E..1L.",1W;Y:
MLZ<8>[;;O<PQK'<I-%]6AQP4,0;C3P&Y0D<X[Y0NHWC@*3^RCG4D<^"'!)/#
M1;E[[#6PR&B,#9EKXU".%3)*9/4A[RZ:BR:;L.7B^,HE065L23/'?1*W'C.^
M14X524(S_T0^4X)8:G&B%^%007SXX>J9IGG+J5.&+"T7T,V9\URI(8A/G-Y$
M.3/HU$*VN"O'*'DX17/E_(ZE3^1H0]6/!W7M+W.&O2^ANE0KUEGBA7X(GX
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
M\8LVRI'@WD,ABEG$O-.T<K-NY2*5CC+H^#7K^(31R\51&UPLL!"$N8>AM0M
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
MKD)6S\XO&JEI(4%ZH?JWM.YT<6DLN4-%8[QJ(+G^@>IW5P^N:T0 _*7K5,"
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
M%NB@FLF/3X[CN/]K(XCIZJFZ^7EV0FKC8ROXM%D""C*:83#0+1HYX)>N*_D
MA$/IE^S&'+US;J,GMW\\(:9%2S&K6YDV2!_*' D[A>'*'<.H,\?OR#)L)D$>
M?H%(PBZVX'#M%(%0PDZ^')?#2#F.>@G)P:%K&C%[.:WXF;EBJ8JVAEUC$9XN
M"R)HV$2]Z;!%%M$G-$.""$,\.![,^MSYN4<ROVE]D.F:7N:>'H0SC%)W#:_U
MBU]!_I,_O#C6T.#7$I'2*?$(HV0IU3LV@VN2VL,&GP<V3XT+ST.>GZG71%IL
M@18P%M^R[9OD:00YOE!YB \$#VSP1-=\&8A58HJQUEI@>S6B=**V)*)FT:\1
MJY9LJT45X?<:&LC<AAO+ZQF1,=E!D_[FTACH_N14"+5-SV^^$94YNOC3CBHC
M_O7\Z_O%:%DPGOZJ3!5^^<?]IT1'O 6M6N)0NY->,7+;]P@@\$=W7K@+%'W4
MA,*:R :-"]0HPRU8G)!790NT9WX17W6%[@1^N5_UB."'15J"I)6+DFM"O$^I
MO=];PE78X=2N2H39J9ZR64R3W_TP-W/NF-%D3, -V-Z9<]=RZF*K[?X;Q(43
MIJB'"QVM2N<#9:KK]\("G6^CIU@'=K\BX<_KC7&HXB_(H/A/.L.[6H#>EZ<@
M40^@(&/C!%@F3X[5:L*AP4,78J]F/4V_&;'>),:'XPJB88=$(? =?O,H2^;<
MF5V:89\1EXP(3T;K9/;57Y;E^V"%MVLY0YP@2QRB.L32//A+ZIF%T"=YCHTE
M\^_*=V5U4<9,(-?WHAZY2INFEI662I+R@\(?P"9^%F@B<4O.L9D+(^$C=$:D
MSBZ-D3ODU*6Y$> W<P%SM,>)ILQ:L'0+=DZ"+1P;#MJ&8YUMJ8ZVO0J#:L:8
MF<(\[/12;=:5USG_-!,(";W<O,XO\EBLEC%1\=5 6UGWA!Z31[IK'F6_L?+R
M40QT-/;\,%9_IVM^;>/D5\6GW6NX!Q7J<D+,["WQ;JW\R<<B]OGD(J]+%&?X
M=Y29XQ1G'@4X=7/XP_S3AOA_W,Y/1[I,T*$M9[(UV5+.BG.!K=40G%Y%U53)
MH?+GO&_N6@)\BAPN6=BB98P,&_5E52^#\ V+RTE_!Y-*':;WUJ87I\?<GCIC
M4>MA F[7#&JJ8>6MG-\A3YP/P'Z"SO:,_//7S#I4BSEL6)(:[@DA1ANCD^T=
MXZX,P:.$\J#L9HMJ/BLW351_IE1V,Q['8>)OKT6J!&_0VL=/FFT0\S<2*(-K
M2%U:V%9#TCBKZEHJUV8R#U-WNWN66J_IR)J[&4(2^*>L,:SE9:BYAVZ=C*G]
MIJQ6!AZAN=:3)4-Q%O>\\OX=IO$#G'VQ"POE164/]M<A9<1)RYN0U'S6DJ9+
M$Q2&;;27$97$)U9'>KG#Q-[6Q-9NT3'5M&1"*8<A>3F;(4+9NM86EMW)HLD]
M*1W%+&W#JH!M]<_#--[>- J+) =Y6OL)4]2O_71,3I-F90PYZF&F;B]()$T%
M5A45??# M6NI=3G/3=-I4UQU2'T9(MM>INLP=Q_.6*JI3,I028VJ,1^?)Y\[
MS-/MS].&G!6VBI1AJ5MV)_DG8^[\KP^S<;NSL8SH&\#H_+%S2<_@9PD$^_8
M!+LM](U9?<RQHGT,A#]8K1R1CH9L.>ITJ_PB-#1;2"]#JQ. $L#. G 5Z2=@
M0H@>OW%&1R&H 91NR<4RUAE%59J@UF!>YM*M"+Y)>WTM"6,BIFQFWI&CPV1:
MG;L(A"G*LV(J-*V[2T&"T$[%'ZS<4R*SU,.TAN?7;/.=+IM)<2M@UC<5385F
MY/5?-!$:\O2KH?@P*_80JL06*T6@Y_>.$!$$BSVC958N]?(&U%8',&+0L?1S
MC0Y9TXLMDO29DO'6HHPPAM^+1QL)^,[!><=-$*+GNR&N4PT7BG<^7#BKJGE&
MP D ?FH5\O!7,ELG/FG4+S"P>RFSKTA56.M.Q/GFC5$!T0E:\;@V5-8HV)0R
MB2NDK7@$OT27F-95/E<8-& 8*V9%B!#F?)YO ,LPX/_0W))D( 3:G\^KC9H
M@A;U/Q.70Y F#J()04"W*/L@R@C1L&RT!C:2",O- H&YZ2I141 N66N8L"C:
M_"H6X;L"6N6)'%3_Q\K4"MPR^3Z")-F]MJCS;LZ[:DJN!O\]:#^#Y, VAX;:
M6[!Q_5:4'H_\;MKYV#!RJ5["_DW8E?PT9KS] _DI\FM[!,Q%5B4+XV@P-SVP
M%-%14"_=JIH1=A+8LDR3N5E ;&E'"5HOQ#[2=,KQ&@REHH9Y$;C1SZ ^T*T8
M^!B15MGDIY].Y0DFTRJOYZSX30TF.7'D\U_X_0FFEM>M46=L!/1GMORTFA<B
M0RZ5I<X[N,!P'@<SO]KVVB:,9 8Z*(07P(K$8 -$?P5XF#3OO7# X.8K>3K*
MM/OURZH?!FLKYQ2%/@T\F<&,@6V&S&P/$-C;6Q$)TMN0PQD*&S0+76H1GLO'
MKR;SC_W&//JYF+VC3E 8_JYUZ4>XA/ZC?U,W.6%!@&-%%^EG3O"9EUI$?QWV
M^8O\0HY=_YMJ20O1HAO?@O<(;X'3W#^^/Z[D-+(<S:9[SLX3O[IMFU0]H-#)
M"&BWE=DRS"F!(E][S+QW/R<A!^7O#^-;YD0'I.2HD5:HP8C!!XBS0/]T[XGL
M1^8#0#&_ !JT<.$$9RF.'AFUH4@/5BVB-Z=;/IC"U@ZNC2J6E9Q<K!@Z#"@<
MCW-T0%S9,+M_WJH*O (;8Y-5SR$CV.T<PE)"=$/.,5FEDBS[#/NAI6?J)">6
MSR)C=N@%S5@WCGI5)0S%MAI IO!H?DM2NQ5;,(0'3KNJ!$[3]!UR]5+D<+.[
MG,3%JHX5LZ8 8B8 G2LN/)',.N^^Z)7U/$@6@@(,6?3+1KT0@S^)!RGO,=B1
M$9S*/%_G\%\%G%*L-][WJ\K N 40+E,T*;U5VO(G<V$/5GEIVT^GI5PR1&,$
M1"8@T5ZU(2]1KY,.A_H^GL,W=)Q>2;W-&E]UM\]=?_?7#@*9:Y>S(!LM U%T
MB12)H^H5R6#>JK;.!Y;0&78BU-)F3HI*08!9>9KP9[7=HE9,FY>PL66WGG('
M@YF"S(R_1GI)_%,0/11^#"+(/?<6- #W)Z=BFOD(,%^+.J[5<#7PE-M-W>\*
MY4\@1JT[ZF8@R/XRD@.8^"DQ,@ E%^<J(2?[.75'8N; S])Y@6[R7CAH;15?
M'ST5_C<<$ 4YCKQV407#Q[K4:[[-P$[(?4OQR;%&B_6T\\\?L''LSSD?:,X4
M%F(>5I^/#_P\T)-8=XA'@H-%%A)2 Z8RJ7)*4/]0(%7&T=.%,).>TO%'<EE+
M!<MP$[<><^/)'(?+<C*H+=8RR#O6UU@L;?NVQ:4<K(Y$$WL-PLFNE#@KB8#H
M^1\]>/3%Y-?[IR1XXDA-F&,H&LX3O_YJ=4 G;B5=#9H_T19T"KV ;&^M6B,?
M/#5H_.@^X0F(2"R^0_+PT:TISXN:3QZ<M[1ECF0K]=7,!]YJWRI&=:,P^YHE
M2\+N+#:* <B2-T:*DB7BHQ9E(Z6AM%4\?(_7]!J.OW@*H]M'6!HN/Q"7WB=L
MSV(LRAUUP70LV,?I]]$/7M;25"B'9PD7*+OFR7RI3-O.V!J40(M5=1$=/7F/
M.W;$7#>_EJ4)-KM =7$FI\0U4FWGZ..T!TT4:Q7+P*O"YD&HG46[(4S(-^9;
M]&UW(H%UF3,QLM#'=IEPH6A0SXYW<H^0,E>N!'94KI^OP8!$^HZ3>,RUX^F.
MF!C6@X:T?? #Q>0E'_$IL$)KOUN3/Z:M35,PTUQB*6E_R%_$["I!Y K\)$="
M3+R B^'BK*).4*'F1&-DHJOKUUPG9)"2G_]7O+?/L?+V^,&A\O:A)'/3!L9>
MB^SLS*V!^[->8LA!2"-U2IVRBYGVDPA:3DUZ)OH':695FG&3L&])%4GN4/2F
M@YS)-V3)VUIR;T_/\U67ARSV,7=R19'L$YF'9G)/&I;?/#T^^2GV+..?$P%F
M*V=P:+'6+R=-B06;1\9AX-^D62=/SQDF_X2NY@;AB>-'E.9_[L6-/J5A,#OK
M_&WT^-1X(7$0?T5:"H_,C+>:^Y0$4*_WEU+4;=3#I$;G.D"RYAQ"\:/V%?G"
M%$V9 XXO\ >I^@JAN"4Q2(<BQ>.EMR_#M>2KX6BB3+E_.S]<Y?S(!S$<.=3)
M9+MTLO-DLI70JXMC1$Y,;[NAPHW<\AI\1*^U.U7+D.$<W7EKREY=?6?QDD7R
M76J>O0Y2SBJ.[0Q98A'N$Q;TCH_'%9CZZ?^J>9GT^S)-E6M\L8V5O.)*O21O
M%]V[84&Q&1,J_213/C<\?FAS3(LJS0TD]2U;J TD@3;D-D3X"4P@>.GI?"5$
M-JBBD"SS#0$#&EI/9MO92O/A/$4]7IANPP89.=SHX>(IMTR;@,3^'D[E5=F[
M_]F5G(W@+8N4Q&FWH8K]Y,0OX):Y .GT\&NV@#]!)"-,Y\@X"DH),"<#4)O<
MT2Z)DTU/?_TXS=N]UO(#E9V4Q@.D'.X]H6<XJ"]8+X*"?]J.?C:7RHOH#TY,
MBWY5BOUS1^J@8&O3!T+YT[]8-%]2$Z#B(UF)J=2+<BG\..A2K*?%LJNZYK[>
M[2T+=G",AR2F6 *[*&,X=59=^+/O@@N8-%)Z!)NUB <=>TK%3-DE[:V]?\CI
ME@NNH?QZ\O+4E!$52,.FSSX92!= ?:EUL9T[EX\]0G$LZGSM+JKZ'0T)0F_5
MA>;$BX]2A$XALBW(L6S>,M)_5',N#PN])[V-6Z$V(OR+WI'-MY&TE"YM8CI#
M&4$_>F//)SO?,(= ]G$#HH4&XBEV ,R^#F9FC!92WFUN^7GI#8(M:6:U'[!R
M'X$CUX=K!6H:7G[1ED%MEZC7SXJ-+1H2.<XZ?X> /6WVS$)Z3HEN%@NFH&7S
MG835O$&X\-DSQ",<34J5"_.T23*FQI[0;LL;X6:13.=H,&_3 _K(6EN>=8PN
MOZ0C3@X*<G<L0Q/M#_@,@2K7W"<BV[3,8+<O)WY?^I=[*BE69=]1CN#T-963
MJS]]4V\97=LCO$TYX,QS1ZLCW\MB0;>G0V+YY&A=8&C9K 5$9HM%BD;1RN_W
M6GEZF*,'E6?#C@0O24F!C1SWC1GWR,F_G'1/PIP!=F^4@"\XLLJ@IOZ .?A-
MQBX=7'^8HL3EQ-TVZ7@AHC8)Q%[NK1FXC%QTKHDOEYA$Z1[DJW(6] XJPUR3
M4?*YE4%Y+3(H^V=C;UICIA4FFQNS6)$4!N%Q%.^8!:B%L'R3$R-!]:72,(8W
M._)EW[53Z;>1BO"B$'[J,%JBFC-DJ N@46\BYU2(]+N.:<_)<96*+H^_#'^K
M$>AE8^MCSQ%\CU4I$1D?5A$229^ 3X*YS$$@PU3%60QF#+%Y\)'FG,GVA@L6
M:IZQ"U2MG*:X\[K59T*R.GTP W<5FRC>NSY98+'78V]D/($HHM">#;IT^VA2
M1J\47C>="SJ9\@TW0B[]^3+UDU,1U3$G)*RPTZRH9]V:44;^ID]XSF/%DM%_
M(%V#<=5%L..Q,_O,8ZL$Z:;?89T#(B%64>E,XH>E\V)]]2!+77+"+\38N*BX
M%+GH4;W0PF-*,Q\,/*I;>&;4BG!FY<*#H>,=9+NQ30)>W7LGE3^[P3Y(<G"$
MV^SA>10@%\LTB0L(PD$>,%DM0<&.SE9B(??/7C9(I6V9EW$.N".""W^7EI^Y
MK(0ML.#2^?S<>UTY!^2:.J%H03G#9;@Y>X<'R.16CF!UB-XT&=,*L5ELE.<J
M('\Z<!P<*C!)!>;AH0)S&^-*9_G:Y1R>RU&B7J0U!\/SV9]-?W2,=]1L.6\8
M\F1! ACS'*MH8U*]NE'+$FP)AT8SQA8IKIHW<A,LB[!Z\@ZFO]R?O)8=B .4
MFIXIOMML:Y;)H-#=G*P"GJ7SE++H_E&CD@@/!TFF2))VU"I:/ 8G&G!)IA#<
M1K2W*HS8$WMDC,E8-!-O!O)6)509"I#C"JVY_@"PYL\>'\,4@GA,G;1+[@FA
M&4F^XXBM<62)YH$8;V+;];'H>A-.'9YE>PS(!S*+O8QRH+EJ9RRN]%94RO#Z
MYU&BFR,&GQT'>M2N20A]PO'GXY_<SWO>V)O1)!9U'(?00C=W%(3[M0F4[JZQ
MM'SE#'CF#[8<3MDW26 \X;56%#(AMP99R&(A* E[\X)* ^<546YL(P^VS 8W
M^D/T=5AR,*H/5R[G">,-SU%U0R#OQ^6(QF5KW:>K11]-N\UTO._#3\1*RQ.]
MO(ET5N47.==VU(&S3S-^<TSSO.+E03-"K^*].F&XC.N11NV$I3>B1HT1G8S0
M'1+#LLCT^*ED"/_3KDW9^'X!$GS/OY%BQ>FIBL:ZDM&%N>;(3@CO/U>R\;I:
MK02#SRZ6<<"V[&_QDYA=NX^PYTL/K1<QC2DQ2.DH!(&=" UTU[ Q/<.8!%SX
MZ]RQE\8^&H*90GCL&W^DA(Z,$3,>O%RU1A(#YTL"5/ISBWM4(%_-RV*-0TMB
M)N )D[6A^"'I(<+7[]S4,<1L=F93T7U9: M!BY)GB;Z9(+NXF?K^Y&55.]K9
M' $TCMQXQ?FBPY3KF5IM,:DP1)%6M@X^-.-O+]UU8ZW?>MX$9U[PVYH$6.?O
M'+AU,BD_,V(,DTK07I8QR%>\VJX\\;"OBX;)T<6BRGK$ZHBK13ACA .(3\K8
M#&XZBZZZYQZF8OZ%Y%7:VP[O44"[K"R&LKS8;'5S4:"Y4:+KIM[+U0F<_1O\
M*V,++8MQ*-!HXD<3Q+959YHD99),6(@UC$M^#2<R*DE+]'^UOS/:81Z+D:9S
M4V7 T29.5>4):AINR05#Y]Z9[(YY[IUW*,K (Q!#AGYSA@$4I?N5=C&N446%
MU+V2T+26U:)L,M,*$MKX&BU\TEF1H95E,?I:'^KIGW@'@[IY_O[O#[]Z\/WC
MAQF0!GLYT/"7QYQ"N!+OBS5;LX?9UU\]X%9.U\^MLA[%SK3JI6M8'7I=RU:M
M@^?T,)77GTKL%#LK8]EB?V#Q!&9LDLAG%?? O=^0?S)U[85S)3?K &:4K(5'
M#[[XDBS:QYP6CK#Q_.H^F82(::;[<&N5#C#>2"@%\U/-KYJ/P#G \);^&>2(
MD80%GH+MSKGG%Z&[\U^;]Q("W(K=;9B7S!96-3N3PE[Z8E_%PGN(,ZC84CBR
M*I95V<U6KFHI_=UL2VH$*L0 \TDG:KLXYQA$VO=FN8=X88I%?1-OCUMYKUTI
M#V_AR>=R;FT+*W?.Y7ENJ:0YP L^S;#2)X&J@0PP[$<B0V@.\V)7R6F@0-U[
MS9:4("^!Z_-'1R00<F7I6Z5ES8F7M.N(DQ^4F@P==1=G7'@QR:'>/D/N@(3(
MN$DUQ,+RM"PK8;)$FCV[/WD^LF'E9[I'",-&R1(EP(]UQ1 A<U612V^$ J9_
M<<(--;HPN"LAR@E!I5^US),@4"L*Y'MI,FZNX1X>@@WQQO"F@/^E4?\5AF#P
M[#$O8V/6H7EZX?*S[='IFN;I>.V7XBSWS\<2080N5-#]\?-CA=QG@1/*O]*I
M\RXI[.6C!P_] 3<%(*A-P&,]H;/T >1MFFWCK]/G4LE#XRL99GF415$WK5:Z
M%6#(WQ>RA<$G>8![G[7 5'DT0^P C2L93EHJ(V?!O&@V.RNKDSD3#: %X'W.
M,+V(-1^7'_SMK& 99E<O1#<+GW=SM/@"3Z5EU6@.=6,L .EC03+_0B_1#?KP
M*_(Z'C[.N$0@.\Y_%%<<P?!A'*B)5<RF.UK6.0<6X4$:A\ZP]DQ/!;\\4O:&
M"!CEYZ%(#.7CFE!F)7.>,&5)?QMGYI_ *AX%VOPH]4BPJ_?X"*4;S !G/'S\
M)X789OQ&_"+Z*^Z311]YF!A^/QQ%*$ Y*>P"\^3B&J&H08NZ@=''#X+(0QI9
M0#OW<<:\$R#OI)0O=GBO2E-)K=F)WBK=N^K:&346F&2]O[0JLD;@A%2NP\UZ
M6"S5K \--)+[HV2:R5UQ7J?WO"+!3LLKRK#_HXF<A%(DDL?JROA4NH+5>O27
MQ'!$C'GA$RI(WDGQ.PAX)]D\HS)/CY7I/B8DO(3,UNFAAAV+K.AE\[0U5D"N
M*K9G651DOJLH+3Y(1X8VZ&&RZ%"93RKSCPZ5^5O)E$<"2$M]8"P#YZZQSP@O
MX]!1X(].,GYS:NT3"Y@>[3\&+BSO.!6MM$;03DF;)?*&:T:Q!,*WPI$+.9R9
M<',@_XQJB#*,@=)'3YKD-.3 BSY##7) 0_5[&>0+J''+&]BN V_V9J0V[.],
ME&D7HY11YE"]+#84/66U7ZDWP5WX8JLUOK:-^RD-E[YAMSESJ[G8K"P!'37_
ML!$6)!-*;\#^H7>\/WE6T/T"8FKN" T$AE&NKX] $D9*3T7"US$Z0M]-[A7_
M--UGX1'][X17ON>G&9]8NFY#5=CEL[/^<*<9BGO%M>\&I.389$4>E/@4F"-_
M<7_U?AGNRI0[XDT&I:C#%8%KO7A@%!X!6  #'OATV&S3BDL/?W!- ,E+UE^F
M04QN*V6:*Y/>11-1U@$=*"N HI%0/)=%YO?A!J/!N:/\G9-F(.VNW/445XUP
MQB/EGX.$@6E'Z+U'\MQ!LQ0$D)%K[QJ &6^I&'R:CV=[TEAKZ, H^X(,;5CA
M="U7UYB,\(BQ,H3A&N3WJ><,;3Y] (E_+(+T<K<1<\V'08/N;M<H\"IYAM'X
M+):!8T$"-#<1@@7$A/#0ZNJ[R?[(=G@_TA7J#16DRP710>X2D7TFNT8@"+O!
M8#"&:=T'N_P&&#$+"X.3[S322I;HSBMAW'"U,V]M7!GY\#3,",5<V)ZKKQCV
MG 7+R43(R\HET2=!+165L!2[P+U$RN:KM$N76_K@E\K;!8?XCF7)C%BXL02$
M5,.>HMT@@\CXX'>\U/J%=-/&0JV),2/#UH--05%K^8SR5DF"ES&&ZG_0ZC6<
M+_9*?=[8(9$KS7]R[>3ITIX_;]V$$)8S]()6(:@VTTP.7XO$"0F!G%XE*);K
M-9KDJ7M<:K0:+QRL^WCEE;HC#?+( &GTMPJ:(]]2\52"S4_Q1 EZBP)#"H+1
MS9B%@X;S(@MP=!>P2,-::80.LI!]D QC\@1T_'+]YG'4G5?&$$:!3E[14>B0
M/!AT95#2$MU)_LST06[K+ J6O%$"<]!S'TVW1P!\3W/.DS=#1#Z_D,UNTF^1
MW0!3.S?E7?:(;\\*!1NV ALTTY2<@IH_E;$-5S3GP?]C[TN8VT:R-/\*HK9Z
MVHZ 6*(.2RKO=(1*EJLU[;(]EJMK.C8V-D R*:$- FP<DMF_?M^9!PCJ\B%*
MPD3T5!5% IGY7K[[?>\UW*ASC2]JQ2A]>UG]MBI3NZM2R5A(9L9"4UE =OH4
MQ$).\X6O*U'MY([.%$SL,;P(!V(&*N15E919=Y[BLS2'@$)*HGZLL.4MI*O,
M)V8V&V,)6SJ6VPP<EW#M,)O"N@TED(2 ">M6ZXKA&HGY96-5_&[N"1735V"N
ME]=IH7()L#DG(N((4B_X,E?X#<3 I4NLK:Q<G^(,C:X74 OTRK298NV'5&1"
MVY @54&=D3/#3$;N6&*=0:0J+\D9.VBX(A-.BRRCV+PX?_Y#E\3NU)ZT?:9E
M2/MD1>A'NMF>Y^XF>E=[UT[.E&'%GR9I6#QI )4A>><:CJ-<GY&I(F[[-JE#
M[>%Z0+)]SZ!ACRM8)I^I_(V&E6++JN_@>@\/#VO)H+MIYQCS HVIM@<O?"TL
M'6A.F=704D6D))8  9;U]?6E-_1N#VEPDE)#\;G2K[F9FX1=/I0%\N(7ZL,N
M&_7+T'W:SANJ^:O#&9YV)WQ/]Q=&!R&YYHWW(.L?<1W@*I!P$)@\$C$^KB\;
M%*A!"@^AM750'E3--:UOVM*Q;"1X8TE6EC:I%>! )FG-,@CT%H@S?@N6!D;C
M.X%(KCUNY*UQ:MKN)<DC:Z&Q94MEQ50!(#CB*/9;%><B,5=JQ>6F!LU*-8)/
M'(! ;5@0J#;8A(TF2.NF^("R)G_&D&JG:XM1'UIUP+O&WZBMC936DFL+)*6?
M1F<EW)R^?GKT)@T%TW;JCWTQ?BU&/<?GK+P7GB=KP43MD&;+C73;*4>A,DW*
M&JGWYA:N>O=\ -T>O88=;I/;B"T\P+8]C(S]F%2H?XF\44JCK!A_NJ8^56(,
M0A,N7[FD7Z._2OG#TN)SM<UUI\OPK60^D>$A/=5=K_=JQ[%F/.XH&K_)G>G0
MY1[JWC+\V?*7W:2C(%=H36:RN9@1N5.<$*A\)Z*R!Z+'1#= JR6N+)N96H"<
M%>>H_A:RK'>F](;.@PVGFW6=7]QN,I-,,ZN[P"SR#T=C/NY8B&8"\.$?R.P*
M2?8D4XK;?4KQ6XUM$D0LF4=DX1VL(!-\S%%:>/6)"J,5JWKBH#X/<0)K$P/H
MAO,#Z .7@N9.Y046)"_HLD')?WO5-(A^0Z43+L[FT43/,.[/2N_9LTH(-#GA
MR87<N-/9]$]Z)VA ).%S7?677PW9ZGR]08";!=U(9D18-(-6!F-58V(JI81=
M_9J:-<$-:=&>-J4U3FFS,L/"BIFVOQ ^&=OU4I"HKFU8A7(5(?T*%7@EUI]*
MZPP8%_2?74&CU?USNES76]EJJ(0G:[>E.FA763Y>SJ*S=,9UAV(!#6.M%V/)
MW>0KIW?Y(7PVG*NE,:$\0X(;QXO<+/BD':;M]0R-2DYFVE'@EM\T*=HCE]@E
MPS ++/OG&YO1_6CC6XXVKN#D(H68(Q[Q,.)UFH=GP*D=MN0!A7(BZ%BB"]#(
MR CUS3I9Y65/Z&]%:!S5,M.Q<C('2Z-T?MTD"UR*@T@]C!6\/76^&74D'4 -
MWGF%/I-O?OM.X%*3VFTZ\7L*?C,*BM=$ZG;UG4K9:5VMWX/.;/:HQ9D./.G8
MNL.EE:PV!=OA(7J&FP;*]#U^#8"=QMB9]4=_F;+^+_T6SIZ3OC(GE49P5#BP
MT:UA5WG\5M>B%R)CX:FRR47B0NMSXIF?JSP2#_ &F(QF"W#QN+,@?;%$0#I?
M]=4^/)F??@V1;+J*O*GLO=!)XS).TM8$T=EB/QJO$S@^E6:<8&*YC0BKH;3:
M0HJU2,HWE'SH_ALX5IUI)BO?6QV ZQ=@OF6BX \;@Q2/C8)GF')JTA8R5'D+
MX!2_+FEDI*Z?ADJUD@!4^^C%"=?Q2*\48T=+J&;78_C<)/?(XD?8UM;##J*/
MA;T7(2Z,'06[# OCV+==JNG*;7P8+XHMK(+P&H6C3/"[<3!"@BU7RP,\"\1R
M0$<FJ U!14"F_A-=3""F& R6GPL@1SHQKE+UBC-MUR9)V[LFU2423(71?F.@
MA![D6WK@D]@)SB7JMHL<T]S6X'L]86+6)X&EXI54V5H VQZ,<%+Y+019+!7B
M&!1A64P1!JX&\;*!7D([K;1W4C<>GD8W0JL-Q/LD\Z(.70(U#A=FEU2QZB)C
M+??AE%J+X>@\@X_-P+$2*+-?J1F?BT3M";I.5#MGVG8JYJHJ:8X*A<? \#/&
M=@A4."(:<W%V0+8POQM!*=US&4X>AU_DQ87)L$"D&!%ROX[^SHM\P]5[M-::
M=VR.S5;;<-1>LX=3AQJ.*T7RG)F%\F>*1^.5K\B1X)^I"\%:K3[VG;6B0QWX
MWA4>?53@1"E-LPVGOY^^__A.6TZY!I :0N&*()8ZJ6/M(=1>2V^9*X'UR@3K
MY;7T1?O.J(&95XKOC;D;0^.$7 &3HY[ [7=S)^,Q:A^>C7EI [720'"X H"O
M)8J1])#R#T;FX[RV=E)J.YS#_/-RA9WB7E])1<B)=V>X+:+0F"L7(K;6O+SD
MKDL4>XE)7$*"K7FH!) &L@-3GB?SBBN.0T8*:R'9#[+%M-?GYZD4/K']B\L/
MO;H:))SDZ-K_'I@)H?V>"%BF%ABU^V)+:-P9.U_6*.W(Q+4PZGZL&61+$U8(
M:B>F%YRF097)V$,U)"P)MA)L@Z8;QJ!B)$79![(ET_D)*7%>NE0V29@$SFB4
M&9>8O,!N)2X9$/;SBGC.34(SC\'L*>2J^L&8$O2<?T[DC;@APIP]03D/)T"+
M@D^2;%'54I5V82JR[6!?A*$I*5U=0%TPO."9S$Q-ZY!G_2;@[N&F/-]9QT&0
M-@,&+,:?Y'I<U\ ; A?8.34$)>(340:"R.DQ,IX7<Z!VL3 GL7(V,8$"I3:_
MI#$,VG+5H$:@6=RN_,I2Q+W9 ^MNX_VUMND0UMQ,\RX\8:^-HFHJZ6&2:>@6
M.V/U:RCWX?>N4!DNMT;9@4G,?FG)\+L8$K)[]. &KVP_9D/URA9D+?SKN/C+
M],=C@.>F50<8.C?D=(&^2O'WC!! PMV%/&OGEL/UIQ+:A3/_L::#38Z4!D2!
MS4%5B-<EHO2JIS2X**T^.3/&$3>?VLDWOG'B#?/4?5-2&9<'>@1-.(OA@-B'
M"R[;]#5^7TOAUU+L]+44WS74TNKXNFE,11M$L,2NYA%,V60-"U6O+3"YIM/$
M[Z*TR?)6^\EUP<IV(\KU+2>_,1![6"BBK1-FLK)Y8NX0\1U@$WNO5]?+MSM=
M6W%%.BBR\1CV)H3W<,5V00.M_MVKG/6^*F=(1B4=@>\0>7T2-ZNT:;V:W1??
M!@UK</QP1:M!?P40O8=_=:,&!$;&:O<?@'86ZT&ZIUA]8&H'334W;8KZS+CN
M G/RK*0[PVO+%;0.;/16Z4 X!ULLG[&+9%5[2S H_HS=;2?;W 8HN0[.G?IV
MZEKZ;'AR#A?KAG5):]Q0>DMA?"(;2C&?PO:^'?U[9G)7[SLQ%DDA_#(U%]=%
M9MH!5PX*8HR6C'U,OA@4(K;?F<G4V)9A_[DT3(C?7XC3;-32Y5B)3&Q;/PI<
M(_F#@G$7-EL]VCCV1N%QV6%1A6D*Q%J;ZT-:I)QBNQ7)<7K*9.%'?8MEZE.(
MY0M9@J(RM^2)&C%4K%';5!X(G V#79X7;0^G-,H<'3SD)@%BM-OK*,"HLS2T
MIY4-(A7C,2*1I';\<)=8=,'3P*ZF' *%?-3_;(,3:U?CE0+<CR.5X4/\*M1E
M9(567U_[T ,*K]^5N:70.O*<(HU"8EBY\>="R;';\98Q(>X ,1,*6">3BY1"
MBT[/+V-1+ &;<\+)^5A5\&ZTJ8)9=.[9?J>PY\:M(2UN.DC6Z\QS7,LS2"A2
MC0=6Y#<RH9P4G >XY7884=P>.?$I+RXWL.M?:V*O.N1(!P"LF+D&2Z9YM/1W
MNZM!]-?BTC 82D!4R>2U)G32NCE.K"T7I50/TY@:[*V1E'R3ZW]X=E[P#DIO
MNOF&', /6%[37TOLMN(,8A[BPY))&Z?:XYUL$*84L%2_1RGL@PWB$E>\MPU5
M_@?KD)*$)/G[W#[3WA^W=6O'<U*AXR%3=</[3>9;YQT79>G?:9S7*P7(I+4,
M"'.0W?-"(3!(1^3.&4C$EH>G(IXIO;&I5K*&G%]WQ*9CK*LS\1WTT%F34&N.
M&SVXW!;& X7;DBZAH7IVG \*,/HIL!S]\SP!ZY9;Z;27+%A]L0KX)B1B&[;%
MHV+GNH#4MZ#0N6!;<V^:9^1P%M<%7V_0NSP L8<V_KG)J ]66_,8?ZL4,$ZJ
M*,..!6Z6O15W6T.!%(*9+%5*QM:4:26%0):G%^D$5LUVRKPIYP4U"(HN2G*U
M7Y8&+KG.7MLHY2%GI!E[S#2N+M;^!BH-Z *E#$VQ#FNN-20Y9 9J$/3 O>SX
M.@T]>%SD4@ZM8#W&42^2S 15@P]--1[=I,'7&KB=@Y@XO^!/4@K:[:_D2M6E
MC'5M<_CS56.;9"F2BPF[WOWN'AM[TI NYV#S%2J(;&E0)0PTIKQIL:)&?L.?
MFE,6T4=*#0N4 C/U"'3>/ 8J8O;)N;B->3I@KT#IN\"_B&UB0+ZI7 4KJ;5L
M(?V5C /.CH2Y$*OZYFWX5S;<:R9IN>=>2D>\9K%5!.R F^'*@ PL(3\-9%'V
M6IVN?CE:)^4Q":=!/,Z3@',)HO&A7<:6G>K;-" 6R7(GGA2<.6N$M2RM*$^H
MUDO#6BNTP&AAC34R8L\7%:6$)9GJ(#9+@WD: ;5'I546P-M+WPO8V#&XA$ E
M'VI_I!M2A4Q@80%P$&TK80>E*V27A);@:$&%9Z*R?8WM GI^N19K>5=/)S8&
M-93CQ<N7_S9J:L:T(?^!HHTFR6(%^ND<9-0%Y.F[4C2&8N6I6&E#^O#FF^.*
MVS920+?MK7+)S,26@KW83P@$WEW26 0"^@D\(!D1)6U!'*URAJE&S@U[$(]\
M0-ZP)RS"FG0BU> H,P%]5'CV2PJN2((=+S\0A.8R+9U<:-RZP"\[-1Q8(IE8
M\[P1*F@B-Z*[TDU;9L?P%A2C;/8$#M^RHW6!5&:P>;2=>3)X*TEP(NG:#GS.
MVG.C.FA6\B@-,C#U.*VNDG)0+Y%OJ:54"BVJZ0K,D."M/2AVD'7=[;.N7W:N
MW1&R#VGUJ8H^"&@[W()WE[G*K2.NK3G%VIKU4^NW3R93 L)-@$"O8@-O/\9#
M65Y6%HVR8> Z2F$RBB&";(/G5;IHQ6AAP2P9;NX5'"-UM*-L\^!/N)N#A!BK
M%A3*".7!M]"OSP%[.0XF'OC?NU2G8 0NZ)11U\1!IP*H\R*;T"B4]:/6E9?[
M_=+9@T-(J.MB"]?$G=<2A&SKA44ZOL&Q>T[S(#I<&E42?\%B9"&JA[G">E0@
M0 \5!V&5.@%V\R@8Q)AFZ$)!B4&<\G&6L.],]A&\^>R,8COTUXV%050[&DTF
M3MZ%K>['6(K'$S('.IHU%>.AD27/1?))-&DP&9[03#NLY28!H+K2\96$L-GN
M(WM(P H0K(][#="GY$*I<#ED0>!9_J('\,H>P#/\7,JAZ<]N @]9 >=)"I:;
MO27T%8F^G*=F"@8L%4-C_(IJJTLA>47&N91NPG$DD61=KMIC&W#Y;N1'/ZOR
M5ZL!)3T<(<=HL71Y*4Y"Z!11,\=_WXWA\N'_V,'BNE]P04U)=1;XTTB #Q60
M *^A. _4</*98TI:AT _EM%E8'Y<I%C0;RL8::0MW46J.2NFWN@6O:6VS'Q:
M-CRD,[QF%L:]ZMJBI..PKHZ3?+/B@M/V8%B63#-;'DLNTR=QPVEW8;)MU8-G
M-*ZI:G$-1@U10-O"6BGD!%.L2'-KA[5^[(]3,<EL13&@18E35N!PI"H%.W6=
M$5A=K,\[5WC?J1BY6YO;RI]6K?S* 7&06([7WH"JT6:"5[\>O;&]!"Q7YC*7
MV,J0@JI\T)1G/-C@_ I6_H@Y^9E=LVDTW/V3G@,V"H #1*[*1<&]@L1_[/N8
M\LR!SXW8Q;6!\->I5&WPQ<6Q164T*<8-!X#Q7HTR!)TDE)BQ(4F#A;Y^^PC1
M*B]TTA#_-_G'XK\[$2/ CN0$<AB''1!-2G-NAE$A*:Z/]92>P!09@44G&=[=
M,\JGCDR6&EO3[%&N+LY,(/:D2Z6@$8,(R+Q@[N2:Z'.XBP;CIQ.Z(;Q'"@E8
M<!+&^A*NSLU94:<*5N=S- 6_V##@^8%J/)#$Q"9L-'7X6;Z58='!"L*,H<$3
MSJJ -1&G!*)Q_:R*.XRJ%K7,/<L$T"3^*-!K*I-<N&&..X>Y-4@<U=-:Y+V]
MDE(I5Q69#'_Z/,X::ML#!FAF,BC+CV&C*N*1:J:R8T0;!Q$:*@,_$$>% 4O?
M^7,7J*B;CN7P>=V"[.MMO-.3O06U[<_P=JJ*CE6SMN2%FX?N\C9KR"770DBV
M3#6&OFMR3L>:#DO'UDQ:V4-SL!AF/&<$63KN6"Q,Y"?X"H+ZCDUI45R7^:G"
MJA'J];Z.JW#<#-YCG>UV8=2J".KT[; Q-#<XC4E5*!TNBTR5(?4]UG2J($$D
M@H<*OV6\2@X'3M-) \R%&"T-AB4%99J*0U?RDV6G#OYI&>4R DX">B'O\92:
M*U?KH7 5P2C.3M9>9F;0URGICGE3(F:V^(T+)_FMC@;5J\N\TC8L++L] ]DA
MT,Y:JR26)K<](!P6\AG\\SGN]N+FFVV;&!3B0XCA9#H%:QKK@\=@Y^6&Q_W(
MDPO?-/6>GZMU;A]C+1Q^=:PC)Q,4K%-*,C)[J34S'.[Z)\7UNL 6#&'LZ5$I
M6&)5)H>MC:Y""S?#X-3U(!UR>ORK7EM5!]3'A0C54JK1B:>F$X^NO;?<M*9P
MKZNI><UN'YJ<91]B?%Y(\Q8?2,NG8 V7^!?=YK(]+3<J_9,B?=?2<ES(0QU5
M$V]4Y KM%XB&&^K!96'AHWM0[T]3@M?@H"$$HI<2^Y'60.CDR8_:W^./IDLJ
MSG'*)&&Q2]C8TU0P/<4=HXN>=\Q"UF[@U43P0.ZEM%_.O\-D/T\J+K[PQO%V
M]>Z#2TU%57:D*P<H9#>"KI?RJC&KNYBKD^M9UU*;SG"04I,5]-K'VIAHCTF*
M-?71J[=]D\<+R$+BBM<8Z ';0#T(=RD:KZIBG%KCT;OR7/=BP=T[(%)"D\\.
MS70IXVXX]J+LRB6OH9"X@\G^KX98+UOP3<TQ.2M;1R1D.0^DQS1K,'?K6O@L
M<CXUSM$W+?$P=V[1"R@1.J8!5><,OC'VIBIXC9T=K:Y=4Z6LN2+MJE3Q,L;]
M/;CH+))@59W",ADH&78!VBML LHL*@H!IBA2BC\[R!&/[!^A.OY%_Q5_Q4'/
M@O\9 JU,9 81OYYE'A;'$XET+#23*B%<ED4A/I>4N0^BU_SUI>9P6]QB"^;H
M)^D(1QQ9$&[=@8A2AI^H?6A0MQX".,>HI!9RR5]DXLG(8.*_,MS=1?O$D4H&
MHPD]ONBW@\4+&X(1E]]P8:3-#H/:F(+XXB^]["GQ#2FA$P['1O ZI#,B;S \
M2X7?VO"RFA!/,EO^XI%ER_OK<UN@9 \:0$$UJX:\ZG;9M6L:DS&"Z-<B)H""
MH[D>;&H/GFAO5FXN)2WF*O7%?Y>@/=O=\GRJ.VK BDH$[]&5,J*&!T. IX+)
MO\LT,G^ 1B]MOQ6[4/%1.I.DJ*483N$K76BZE#(1RO,UALJ<SO+4%KA3#59H
M]*TPY7I*?BM*MJ,,[G;+W=/J'ENFK\T#7B\IQ<6X_6".+F@R-DU-E:KP:\3K
MLLDX-J<I"<7=)Q+QPKLL]GA'[Q>Q&U6OVZ HN%QI:0M-.:JQA&Y%;=>Y@J?B
M3DCRI&-7B2ZLZ$]IRU?4, L;KRC#YE#=LJO=L^[]FGQS-TU)^W.HM!=_PATH
MKN^EI]6WI!6H@S2YRCCO[%(GL0$Z_PR;5G!(@Q#4WOQVLE2,@%9W44_:;TQ:
MV\S(9F(L34?>]<2:^"Q+1I@)8NQ%;0T!63K'.BMJ#.E)];W"%0X5VNLO0Z-<
MFNFXZ]2?SD8CRBU&>P@R<7ST+CI=Y!C:HBG:>H<I8P?L@5(W]JP'HC4&5Q&N
MTO1$_Y:VNBL3 NGXZ^G?XN@W(.JG.'I;7*!7Y9):7)2TI",]KTSM,#NWM.T@
M-OT-_J;$U+&E-@$I%KNFWGR+QUTUF^CS,WR44K06ORL(*LT9^-D$QTQ=)Q>V
MF[BS6;>G]W>2V*!/LZ+=?FFE*Z53TRD:2BGIW+HHLJI7J]_?$>$DD6_L%*LO
M*A:73M()EX5XF<$FY[PBS1FA[&/"Q=)8V&^DKAMSA.1IXPOTWSTX@Y[J#X;J
M5-&"(/>^E,:"CJ+\A'D_:FJ5:*J 2^=8E\JE*@3)SGT:_56_%PM:<?:-*L>@
M979Y&F!/I.]#) O3//4@S@+TK6XD!!]3DPHXZ/<$XN^G2ZZ<2-?3^#MEWB^*
M=.(-X[)EK%>-F@VZK'M2?4M2M<<57S__ZG:3'WOB?9][]D5HVCV5OILMZNIZ
M<\.-^DG-P75NVT0O/XX^F87?K.BA2NJ0D7ZDZO>Z61YH%?YO6E^%@QT"J=T<
M0-?"6Q;AA+/^9GXW*J^"3;L6TI5K([PQ'*.%WWFD/^]I^;UH*;'2< *1*^U/
MYEBU[BJ E\#Y/L\M"$6??_[^+F$F &-:7&(#ZF\*6/.A)C5ZFGPGFDCR<4Y(
M+*-:I]C!-<L$Y;*_']^4%DN12E]O)0L9555QURXWVE(OG1 .UI7WE7K?.>*!
M;79G/,S")&5.LTT2U[S$#:L+&N28E@IO?%84$^P_Q0P^:*XSZK+#EE+?W<X*
M7$"*(,G\IYZRWXJR0,3\C"<QN,K"9$PC&A@T!0R%I)P(DC966HZ-/V12RA5C
M+V44#,[32>U!PQ'5.?K5C?@MLP)+MN^7"/HE]OI^B:=]95O"V'9[V?F6D0=^
M(#-Q+EKC+.56]G+UNT3%:&C(U0#(,240DJHN&RYKIQ+&I$YZ$GTWOXSOBD#1
MI3B!],(6\49G)0ZRYC/O[9'O';-2P)B2,&#;H 4>;HQ$0%;,MNOI]BV+ Q%1
M@HOI9W,IMR?R'/\.OH*947F05/?U'O6W)(:'S(<(A5BR)?%Y?Q*&#@ISWVY/
MW1:T<(%11R.^841%-_4D]087]@3];KW^8VQYQ<@'FW)$UV!<.;E1?8CD^Y'(
M<UV]"N8Z^4Q3*Q0%M#__;W7^7J6Y 5.NF%&GI71(RL0,<T9A@8R#4A)\N'+"
MC0R_0S1C1L?I"?BM"&AQ:\B2*QM&_=7.7!I:PP!WX"01K!G\JZ$!,$U-D0XO
M@"B#CI9A<WKR?3.;@\9.X3F/P0Y'##RMOS'U.9I^L<"M\31)UE.P. *?5/ J
MK"2@YFT:I*B#=/O.C_LU-_!"GC%RN@<Z:.\KCTK*%_83-38%O$P1G0,$K)YX
MW\^#GA,@W3E<'L'Z1%C)@D=GG2?_3LI)T506AL VQ_9.\_?STS3*!&ZSD([1
M-OL:N&^>^<+T/UCI.BK8 <?80(7T1/DX'2YWA;_UR@38 +61>/PK2LZ7^'E/
MRN\C\A34\NV[-]Q8.IU6IE;H12")H*2.B]F#&P+YJE$01X*.1,&M:(PS'BR-
M2?-1<2$HLUR7%^ND7G51&1@\+;H12T%AI,6D K^'&%\0M1!#PTZ@J&C8KV>Z
M402"3]@A;7K-W&MXT/3$6XWED@8>[H;3VI1Q4IW+1"1"<!:4 1R\6AE&Y!5L
MU_4[@BMY[0^CQAY!HNJ>N8+;)[B6?\0\S&,1"Y@QA8#9YN-90OZL:P8=AVU5
M?G&Q&I5DIMS@M-6H7#[LZ!!X7.%6C0_A)$]R#U% ](0=%JQSA4UZRW)S6NBK
MG-C3MLO.L$%G)4-L*S/]23%Q.,H(/54>?HTU&;Q^#^: AL7P&VG\#68,Y3%N
MK'%92/Z#G"WLM ^!6Q-OXA--BR0868.QXO5ETNY;J8.&<#J@8N*NWQ9N*6I.
MICJZ5/O_\@E.KUHX5&>Y'.1V5^<.]KG0<AIUP<,8%TUEYY]H..SJ[[? H2D[
M6B8R5REK$)Y#!@<^3,CHCS++-*6Q2Q1#U/X%GB<KVU<9D>;3K#$T]4DF5GB(
MVQ-[EN0 7T=#I00?O!L>HL<_B)S.X7'=^2*LZ6 P9WT@C8WUIZO)^ ?[0IPI
M-J8?-LA!E_D9]0$X(A<T\ KL8L%7P02/)P?M"+?$<0\G%I8YY5(& 7UB6!_A
MCLX%>EN(QA33HT4*TH _"0JQXP4+G0UT-%S<'>"S+W!(4<QS-6@-Z.LB?KZ8
MB*HSK-P6E(J;@*,799O]/;CT]6/]VYLX4YQ(UYUFMQ.8;9K=,>KZ;?UJTT;G
M1O.UZD"$<^TM.EP+1\HAT$'73!4[,<_:"#Y<_,C86J":[><5>',W>55K[*/N
MP4'I4) 4C/K\YD\\XHG<R-5A&%XIC?'8SQ@SJE!RM)'KB5T\3*Z?'[6G.TK&
MG\[*HLDG&[*:*?W?RW6(9J0YJQJ@W1P-=>N?_3XX'<B@&'@6MT&SL>#B'+9?
MJ!.#U,>>P'$ /C(KVK#SI"Y3F6\_E0;KY>%#J.+((&;9*LO94#Z%NX!OP;[
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
M$HCA+O,[VC?!7PF%;."@@7=!,X_3BS0+;B$<85)BFJ\LP5T'JB14&BS^.7
M.,V1F9GRC!V;&"P_8+.:4TXNLP3J-I4ISU,C;7'2<6@''"XB-Q*6)E0X1B)?
M5_ - G!Q:F_IKKQ?.HYE[!AR8Y(EEFBASK #9#U_&:V"D2JY_&P[T;3X$B6!
M%XXD5%;7;>-?F5@""<D,=!'ZR38[YZ.&.A+Q&'JJ D\KO]=%\$:I R>8DZVI
M7Q)CN>:/O&=03K?V$$OIG!%4#G=_B5\1QC&3@&V<C25@/NP!5YUS*W$+F-P(
M1'TP+0U_Q@+@DIJ2%[YIY:RIHHS)<^=( 7I^$J\HJ@I1QV//WK*^2>"\39E
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
M11-TQC*]:1K!(4A!.)NT<^^V=1C+O,BKF1BVY^9ABWFC?AX5=M;^*(!>:*\
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
MHM-F/H<O')Z5QM#%("+S<Z(3?#1<G/>!N8?0Q5'5C$#EI$E)MB9_/P;K=SS
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
M B#8$W/<9"AN% 4#C_#J7SQ83PE,?F-N),"1"8+Y5CN@))1FCKQ(FT;(7^
M(O\/@Q#>,V#:F#G1-&1:'" ;GCV7::B=N&T0$L^G+^)_ 7<>G9#$ 'D6LF@Z
MFILT %]SBD,)@"Q>-,_1A";RC;4H)RI"V)(J.2%L"HB%^)%:3=M:>,;7N-^E
MNUMD.T#S0Y /9..K]L9JV!J\?(3" ")%) %*O#':#2OY@XX2-DNGAH93,Y*'
M:2\.EHIZ0"/8B>9.2?AP>@;\KN_Y7-I@-=G;(V?$2-0&H',.O)OY?[Z.6;I>
MM#9/L!\6<BO3T,J4(-)<ECP1WFBW_Y)L@SO;,ROO-)._6_K\>KF11'/WJM%X
MC6PU8^\GK8CL&\E)G_ELZ-$8<!K=,4OGD V"1Q\8)GZT$^NQIBSX@4;FCG&+
MG9 @_5#P:AK#WO],>?5U"*\(__?_ZII&YWVD#1D?^"*^S)P0* =GQSC'7B=E
M(QTDKYKS&#*:7\*) (9D&D'DP<)&&3T.KC3'I/W5K9TUJ\6F?#9\(YN6V0"T
M::;=,&>,FL6-FMGH+C-J)C=JR=/*C=HH> &3]!R,IE)*,*A>CD#<R,[LE-LU
M+PBU5U#B178UL]1%NUEJ5]N=Y.]FB5U=91IGS%-4R3[]-;-,6YHDG5MX9#IX
MS^ 2PY>#X3!B,8K5\L.A49?EV(>!*)_R]8U%0,#!$U'A [!J%$R(3'<_)\R'
M8&,F?27-/I?J0V%7;FY73.R*7%N/VY5$^@;3$ 4;_.0LM@)F_YL-*-K17MAH
MQ+5J1&$2!1+H/I>_RAG WRF&(@,3B2@LIRBY-5QZ;S4VGHR"5\:N"FJA:R]/
MWN!)Q&X,E1M^70C,P&N/ M]GH_27Z38OLY /Q'WPXZI/RHU:#%\@=7FKP[?@
M]2CJP12>.QH% XH:DZ?,+B$8#*; U,'K[$JS.-)E$]!W+]7'F8!2T"\(7S7V
MGZE'!..*"$M!4OP4]!=.X&I^@DU*_@.T^8GY*4./2DDKQ"SR[6I+E803EFEO
M6KD8) U.\GM_8W<;O=F3'H0G.\%!WO#4;V>G/JBT:?P%]="+5IST#BRAT4J?
MGWZ9W'WN!DSY.X)I'&&4#01Y]@:P@=S!=?O$QJ#:X:NN_>;X4Q#_>!JB%N+N
M;X%883"B-KL!<R%H!T5%C]MLOK_][9;^S7C_EFL*O1$B]NE(Z LGEX[+M.:7
M"?0H3\_P!V'^9H"3#76, KM+MSFB#W 1.>WE#\^%>O >[]$G3HI9B0\@7+=P
M* =1\L-7\2R7TR"FR8O3$%;UGRD<NIA;&B9LA->]:19%@"^G8%(2H4E,*\E.
MV0$.SVKEGR6"R\S(<0MS9A& A":Q%N-19AJ*QJ/;;!@SWS#GC(=I9+$$-Q[M
MM8V'T6PTMU++=IGU@=_/F1LR);_=TC\7& AC7HW@Z$W/Z=QWC3*5(Y>!Z)=]
M$]^&VURP2Z[HVUB)U2IM-#K;J/19CDV><1?4V.1=!50/$"7 'G7M'\QGH;B>
MN7&!:.@/\)@AB:WVDQTL7^=1QG4I<1]SQ'6*Q"T+\0X76CUYJ=L'"X1UPG^(
ME^/ZIJ,X^?.<?2][DP/_X%GR$7ND^&@*7QD5,RGP6F#?#Q;G7M:?>B-Z0LY
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
M]$3@TSP<;R+4GCA:Q2P'M%W<2.759@""_LAF$)S%@P=/01"1*D6,_= 2%<G
M1O6<2^"$7L322GU'V'0GN1 2L.HICC06G/;CI'" /N#E^:#DH7N%:.H<ZYHJ
M]G+%^[FR4$*QQGJ 1T2K!D<V [R<<'1F^G$8XA9%[1X>"DB9E^RH>A%&)NLW
MR.'.YBHE9TK\LH+"'/(L\8),ZCP_Z,#A=?EHO,BKP@K9((QFH5FS>HIH.ABP
M*/5%,T^2/"@Z?;"(@A\SE"+>3R$O7P#/SR:Y0V< JQ#C1&C!Q+)DR7A8IP6=
M-)0D3,ISO)DT_MCYP?#/R58\7G.5P-CB&M.M!S[M*TF"$W^F?@ZYG]>[Q,!,
MC^I%HUR_!R)\XP$!A(C$[26(B ]_'F0Y&9<-R7? ZE8G)J$8.=X8F3:$=R-[
MG/ 55&BXX$S!*E//SPE5'L:XQ%.(TA,+?SGUG:2E!:TWOU2A^P3X-SY/)J\3
MW(<2\B_(BH^AA\#/4 I)S 3T/-VOY!%\A[#[.!(!2DYZD,.IP"3<2CB$-;2T
M3C(>).FD4_"6T$'#D-.'%,HYJ\Y^8H4U"&'/E?_F:K*3$&4\&;&8_S:_T-3B
M9)7('HFG+B(0W'Q:R9P72.*@<#PSNX35OE@VSV<"19C(XS74)8,B"OXNQ3)8
MH89L>"'7 T6 A7RH!EY4%JUNUDQ4K$=,VYMR$26-H_#XU<@ _!U8;<*5D3?V
MXMDY!%BLB'YSH>:>TW$^7,W;KNS9@;CE)PUX8?Q,X"I>-.5%=:6;&CJF@IBN
MKX0P<['(*<6<A&"E)=VOI3(\=)Y!S,4#IH*S,9I^XAU>6#G>J/3I_)&XX^0K
MB;G/?RN=2H)4X(5OJ<]?: 5(IC>(T#=W& B ZQGZIZJ6CR9B-'..^PST)=ST
M8>XXFS%DB9ZE.A 499=RG\2,%]PXB,<D2%:891DF\'E$L4K&=O +/=@^K &"
M;)(=YA(UR=M^<B88.*4N09^R08/DI!G!1[02<8D]J\5HF?-+SHK]Z0)7E+"L
M=]X(D[U4UU>IN([>4(P"@.:-9M?D6D:0A'T^HX";J&241J&3H=BFD/<NLAA$
M&'.04:ZL8''Q:'S*K5ZC9E;.N,<0;P?X0UF9X*/NS @_\6@F;$V^FJ;N,FL\
MHWW"K1A.>8\2GGVL:!Q0[/DA((QT_J_RUBB4)U0(4/0C>G'2+GP=7'C0#D>
MP[_.MO$(]<"[SDA<=IX'OGO+;)\VE'IMB[*M\I<H?/>ED$8GB>_^3ZR)N"LW
M$_N$>F_.(T#*3;AMT=[S&SXGHFV%^7ZN1#L(\OLAK2U.PR2O)FUW[K]JE].(
MBAC?EC;Q*DSX'6U?:J"ARU9/;QG-MU)!$2LT;26]ZTFO;>IMJZND5TGO$4JO
M8>CF.4/!2^$@"9](P ,M=XE26IC5:%&JA=*)XZ7=UGO="JZ /-C6)\Z8EMZU
M*QQRBB][XHMAZ79G_XQ1\6MV1[JEL5X7^E8ZV6LW==LTCQ:+^+29T]6-=D?Q
M1DK>7-H=NW*\>&P.=>X^=D&AY@'LN<L&(94*8*T5V':]? YW4I+#>(7[3"WI
MFD?L>D-+3RPZKK9WN;6T9>O==G77:NUAM3).X#G7K$[E[4LNNCW=,GOUB:Z2
M7B6]^Y->$^RN9,(KO*>9IA^+?)FZJBG@:9H;3+%4JW!<K'C",;](TC$?%7L\
MLY)$7JKZ);W:OIE/#<C?X;JRBO&-U3#3=O.\2^W/9K3+P<@)>ZR%)<,$^2V:
M7:B4$2%^<Y,O.-P[;V6,<RTJR4NCQ)'7)H[GSJ*#)^ &>OZ1H8=M0_U7>BHY
M^M.D0'FF,4<LU!*=4;RQ1H![.1%66^<['"8A>_:":82@B-JM$XZ"*(.L'244
MHF)Z^'K\I/UGZH0"$C4#1N,]7-$,[:*(B<ADY/%*=.QQ."F1:EL9ZENY3.73
M<$ODRBJ1*W-SN4HA7$H0\\5C0/&!C0F:<;H*7_1 T_O[S&=#+ZMFY\)'8/P<
MW?B-:><(@!#']+VO0R!DF**'P>I<CU?S.H^.YT=QTN5"1A<E'82*=]D'PR&(
M#5)KD;9027A$"TB[):@_;TZ#)"P2W])&WZ=W;2=JHVVS8:3R!+9KL9$NNW:L
M;J2?8 %,C/$0?=GN_$R)\EE1Y6++]6IV) 7(9LR;R#!KP]M3A&%-VF.Q</ZH
M@*-7<[.; WA9>N(N868%R[B0F;G.KORL+WC!7 \=;_1;GWNP"'C!"MZ=9;=]
MY]B[[8_UD/B8WO&=[B'16GY(Y+VNLBO/Z@=%"EB6.D+9 !7JEO5RTUCXHWG'
M<.Y7^>;=:IA.PM@0-,&,"]XJ/X8JOQG!LI=B()^6YYX_FK81H0K'TT8LH?")
M7(K,!<;V3.<G0:7Q85'P<%PW :C!61;'HW1<ACC@G!<G=,L<8L_]^X5GMUQF
M#'O]SL"V6GW3ZMFVU>V;PY[;[/1<P_F7W;V0R4 N-8=?/GZ\^O7FT\WGVSOM
MX?_<W7W7;KY]N_G\C[O?[CY_?Y O)-@"0H^ 0W"R%RK^5=\9D4!%3PCM4.@+
M+D(QW\=L+![5M/#YW]CC=,1[F1^N_DLCX0W&T]$C29?(.CS<W6XL/VWC>.3G
M]MO]]_O;FT_:S>WME]\_?[___ _MZY=/][?W=P_:S></VMW#]_O?;K[?'9LL
M_99"CZ5 FXAK/B6@38[+ Q[R*[; B^Q0A@*#\ U>BG^>(.GAUW*3(\,$)XOF
M]@A@/LIHDQSE,&42 .^(SSA:^34!PL48S?WAMI: 1Q I98P&CI(6'%$!#T)G
M,& 3?!K\"TY7XF S-'-QQ&TWBO3O/H(-: _X'C&YDJ?+.'H"_VDV!#?]0)#G
MY2F@0_?%)\B>?N2YGA,2D,=W"@UPI2E$P%KT2!KW.2Y!#BR.Q@_^8"GZ&$U>
M3%&4>!KNWU/W,8<#P(=-BJ0-@CD@.<;I#LKS<P)O-1J,@H@R-,/\7.!%O^%O
M<7.3E,HVE\'AE*VGD,Q)$5YS+HDSF8!#3&DD/OH#Z)S)-(D><#:.%M!HAD3
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
M<J#(1W"HJ&KL*^:D!_G"EH]>./[;+\[U@=(9)/'EB9[ME1X+D-=X_=^\G^_
MS_P\'<,#!@0" PSYAH0?7!D7FN^,83DN\]Y1'V80?H8/+NCX'U[9QL7U?WW]
M[1_:IT]?__9+X4D'I>G[W63%=T;33P%'[TWI:EY<XU3YCR$6'D6#0-=N;^0B
M\-?;FR^_:O<?WFF5=XM:=^^F>[4NKHVN/;N[MS..6NS69'GYP;/0Z:9"X<4N
M@[+*U:QRV\K;UQPOU7$J-^/4<;J1Z?_UPQ?M]X<;7?O:R$9^GN$16')ZR7%:
MF2U+'2U';Z'L5J]CVUW#;IMXR-CJD)%D+14.&8M:6;-+FU_%E=4#75DMX*C2
M4PG64HW)[;;23DG64H%Q[1GMS#7R@$OX);U357IZ*NQN=_:HI\0SND,R',?L
MMUO,[0Y9R[1=I]\:#,RF.^QT!DY_T/J7==6\,N#_F:UFRZ+[)+Y"I>KU\-YH
MM^RERHZ%FR%[PM:69Z9]"B*E]"?$^'97'<^2K*6"O>XMU=B'.!C\> I&\.#H
MKZ*V1^GLJ3"^W5,:*\E:UF=<UUQ^QF+!^4<L.%=Z>BKL[C25GDJRE@J, Y<H
M!;98"6JAE/54>-XQEBGK+U3:-%>BI>I&Y^M&S3KJ1O$&\ECK1M<I0MQC']<B
MZ">.M%/Y=G>[FM(5"K,2%^=0F(:\,#X?5E'-^Z^!$])0I0]>R B7<->UG&LN
MN%!+N^YH@@.,CUG0FSGQ?&H<]M>#ECKX_E:UIG!8"C&Y@/J+!J*G@3 W%C9N
M\>Q;CI4<SF/:CSS7<T)L.;G,M5:_78HAHA>F<JW3+Z53YT66^L,6+!V^G&D!
M-F(:G?>BH46?[9U-)M&)^>EH9=R%JTLFLB8K],D+N\1B8P[=-7K5YQO=RN9
MO*4V6^P*"[@DK?D[G-H6$72XXX7X-H_&H600R )&3(S,G<<%FVEU7\&.;,-I
M&S+"]<]V_]%PD\U("NN'3>,@$VSGH0ZCWQL/C=QP;)Q5/*%1 IFA%X <([8V
M[(DTEH/C_2&-A TY^ 96P85$Z\@EMFPE,':(@EG$5Q?2)G0QRN$)\T[>F5]Y
M%-JPGQ,:[0V;#@KF=JT%I8UNJ&1DV*A#CC!G./;'("]10W =<#QLXERD@*'"
MRTCT)>=M?$%\!R25.&0O"RW*;[5+*NEYRULZ:884F* <-FC.J^%3NKGJ9G"%
M_(VHX?#2T"6CFZZ+M&3(<&KJ*-_@-W)>LG'VSF0"BZ=&B7!*K=P(-,N'X'(\
M",Z?A^*TI;ND:Q;6,/:B*($@)'K@I@ZO=:O.,Q 0;*%%$4CXOXB2*21C0@V^
M1>T[C?C-_BKXETZY0H1=(HN8",DI3F_"$1K]V($78@]^P)LUG2B:AO1JIX\=
MG?E)T.LIV#!DU'N86GMD3O(5/7V@Z'1G88A8P"'\#%;%6Q]3H8K$*,],)-$#
MT.'3D$\!P6F;_B-H*?U1;%&G\5NT17$44%LY=4@'8C8K(HQD.TC'>%*#-XZU
M3+K\Z3$<YG=&.03I<-HYALHITA*^<MW7:7V@,&XQ/8TXT!?-%^6&A6!T9VV+
M:#+/(1*4V:\JNR:)@W_%TQJ)*JR:'W!8&?%ZR37J2TZ)Q,1N(1+\. X&S.5S
M_E)X>#H-O.A'M%!BLWD,*X1_A6CK>2V<70\J*S]>!-H&"@&MJZ$]( -R7T[W
MQGX"$;%Y7^>8;#$")]#,0%UC""2$6@QVU G3QN8$XPZ7@KC2HR 2SUQOC_P@
MY#0F4+1L,0(1/GE1F1N$Z-M\_EB^KSL9*(<'KLL023H[>'5T_5X8^([PSYE7
M$,(W_&62AR1>EUETS/;9"*>E<_)G%EC ,''@MM0P]E.7*.<0'UXA*CIVMWB
M(AH%]9!HOSDQB/S!-[$2"VZ0+)MS:$S+QJAJ//5%DS\P,WC!(\-)_@R!793.
MW22I$'-UA,^?'A'KG6W\1.6X.-EK"?6]X#(5_BS<)/XJ_(L'2V/"3W'B=]JE
M\3897TUFB>L- >3G%91>CD=0:J.2*>*KSV2$@#/?(LQ ,'H6O@9Y<1RU8(!H
M87"*DB$1V"T>GK(!41@4]Z?V[ZG[*/3F^U-^BT+GG 4<<@/&SW":N4J^#9SK
M+\YK7HF20VT-"QL[/YC/,15?('1FW*B*TQG>HPOD_61U"?I^Z>)(8O+0#PZX
MJ'#X$[;@S-)*'X"VP,^;NWFV)?.VO3CA\MIP)\5!*(<92[P WGR*P!$>0<T@
M\XDFZ8E#7D8RV9RC8P9\T@ZF2\30^[5Q4?9(A:5[!K\0&3N-(H[#0P#YUMI:
MJ!>B)1RI$.*I^<;NY0!6T10%,7EF1+TL2_'*G/!J68Z"9Y@\BB:'VANKW>CF
M'YO,BT\'SH/6O#'-1CO_)3Q'G1 1;=$[R"92)K\BYWB>"&9Q;Y2FCCB 5\)X
M@<J2,E\7\^>'0COP>^A,CW%2\F3$,G M<A;X#$:P/1^G(3I8NL Z^7<0+@G?
MJ;N^3_=9SRQ;2A[2?N&.G<>0)8R;6UQ"Q"@&]V#,L>@2P)O4_\F&B>2F8"2_
MG!NL@7PNX]$JEA1)+YQ+,5LCP '$',V?3:)WA"R**AJ3XY7WEN#-8Q*=QP#Q
M]!!\6) \YQ@2]=YS,-$4WB=Y2CY*7/(TM-)BD11BYL9MY=F2>]HKQW5#+!]_
M$.>7@]"0V=F=K0Z6EX<<$U_)(^80K-OL9 /48/B2YQ,VY3/X#ARD2PQ+H47B
M\Y_?TF3G(@'GGI[8A06;S?(^V33E"+Q<X2X#J=[S8_OY;2(EV; &+AT(F$='
MM#-C6R)X133$) ES,' H7<'B0^@L[UJMQ7>M1WEM*LNA"3%68G'$A0W+!H<)
MW8G6=R;([RMUQ1K:73$X7/%4RMW0"#GANF=^+_\N*%;B\R;A/"%&@D#S@VOF
M$$@B:N$^@F5$<#WXWN(C,)FY);SRV1,D^R$_"/AE3GJ"%"#% A[[TP"6(AWR
MU@/_/&,:4VLRD]H=L)#.O-G5YZTAFG.\><\.1C9*SLSLI@>E(2)#!89.Y,=R
MBY+1&UZ-3)X>K<F% H?>?,VG:5Y2ZR^&Z[ENR#-.$*,N$.(_1#*<N?-2"(](
M1(2_4\@8,?UG+!A:3'+U\VO(J]+LZ3=WH-.I]CKA$WYROE,1 6]&H!+^IP(I
M1H_-R@T^LES UA$EBIUSLL0E."]32$=$(J2 +H>>752I9$R>6YX\+7I*=#U"
M*<.9G" ]4(#P<<B^:JK7P!%-*3GRY-4YJ&Z4S'F;P25,7ZYS;]7EU.9? 0;P
M BZZ&'>#P72<I,CTE"LH-2E(?)HL3HTD6MOT9@8G-8&\TD2*G!E*_1A<T.(W
MTG5V@B;LI9='\XYQYA(3$XLL6M.F]U\%IW)#JY)[X9QZI(HQJPLYUSV?72]5
M-R)ELH1-YE0=U._Y)?I%RV"'9,X!)K4?&$G0O,12G4UL)G >!((@X>7>UBRZ
M \@$R*3O.9*4/WUD_7 *YQK/-9@=RC78*G;(QPZM.NHTBS@,QQQZJ(K-!;66
M1UJRN4FM9HF.'G83ZT&B2K/<;\Q]"0)7NZ5:P"6G@CS"4ZYK.RI E4<[:JU)
MI1)4,1@DY]K0@(YB!:0FTO[6)K6H%>M.*8N81(0O 5U%I'GATNK)W.K6J$6%
MOPU9**Y/A6,GB+#R5B4ACS1UJO%R(E2L3]V"]/N!"2O7>OV@PR!+:G7+BU%*
MBG>]LCE"P( ;PM)TMAA$?" #O&D=KSP65L;2WI*KQNJ%OI&J]-U[I:\\8EU>
M_!N=>?7OT;'Q2YYSJN1TQR6GT<G6G$9)T6F--:?R: GFF4L!?8]F!W\L2#W_
M-4LZ4Z6;V32H)JQ*[EF>7:Z?CI8N99)DJC6SRPOB=IVO.\M<MUU'KANQ3+?/
M<--4J?VFMZW91[4(Q#OY*.24H\\V[-N79>92Y7SI@5>[!/U8\K5?WOOHQ-,@
M3* W1#IL$FM?P:-[>$)W^H9[3RG4^G[G2?5Z#;MM5!TGU0&;V"X?&U5UG)1A
M--H=N]*C%G]N=9=/IJJTJ'T.N4H1C&J5T)7CS)KSX\SF4)EZZ^R):]CLKL:>
MZX[8KG<UIW:TJ[DB^L(&SX9[V9Z$*:%YC6" R)YJR?*.BK4%YV_+#3=QNT+/
M3YUH5A45F+_%'PP8&PZ7[;I,-PZYYQN:3;V.J"S:;"TRM(J2F_Z^VN(J\UM4
M;4C)[W);>"NZ/_E,\G<;,7YFUY5YLZO?UZ2N&OW3DIR/>$F:7E1CPOO9&16J
M!P1'JVR^J1W!:?YFJQWF=T:QJDQ;$\,//X:BBVKJ>WSTX31R+V9F(;8N-)<-
MO+$SBOY^<64EDQ&GT=6CXTS>H7S<^"[^XRX3CIOXU@E#K,GX;QR.?J%15U3\
M]POO9_S.GXZOW(#P+_&QH#= %48:)(8KMBZNC9YN8K5?<:4+7*Q-%&]M#M5S
MF"CU.$WUL ^@'CC_P-8-HRV)>M3DSAS%>?B-17'H\>YZ8*J>P%PL='#,:G0H
MU?VCUI 5!TA&4%22$FEO7US;36M;45\B<KLX"=9Q/<]>,E;8SI62T0'),'J2
M2,8Y!04/3T$87V'S&W;4 IO&91'!6H*^KOMSU(*^P@02.;\#->\S8E;U";J@
M"RW=Z)V0RZSD9TU#N5I^AMY/YE[]R<*@1'1ZF+GNFH;Y7A+9.2=_,FO,4)FR
MY1)DVG)S\B9!)0O9@$&DUQ\Q=2)N>"(FM/R6DO(?81!%(JE<\6QL-R^N#4/O
MF4U)[)LZ&_=W-M8K209(4E-O6J>8>9'=OMX& O[#67Z5>/9A]:J,O:#C'U[\
M="L DNAV=AO%,"^N6[K5L24)QE6:9H\I[O7D:4YDK(OKKB&+P)R3H_J[W_=&
M(\(52LY$E;O9U)HFQ,S\BTU-:.OBVM0[MB&):Z&<U/V9T/J$R+ZX[NE&RY1$
MB.KT3ZV.W&;U.X%)#V?R.=NXJ0N+RDY<6U:87!IT.Q//5=63-E68-%M;!W*5
M6'4$KNRYRMP*"UV'S'5(YGJ]NNZR=R=S=7K#K9[<9OL3BZ)WA#+^@JU,9^8)
M7]:9M$UH^#$(25]N?/=3 &O+]&9Q--@%Y6C/NRUOE=M[S!*S*CF[C<3T>(OL
MH05&N;BZYK.MZM_.U>=8\Q)L@69\9O%F02*.J3>Z>K>[=:V(<GY/0Q#7O$.K
M71 -[A&;7>D%\9RJ^["*R(\#'-1^7LYPC;8[H>$K*$=5K3!!*_1.;^O"5N41
MRR<V*RSM-F)CX?U!N[OUC9J$?K'L%O-KR":.AX!M$^9' D<Q(*BX0:$/5A4M
M;&A/!87O.('!!_F"U.5-Y1LZ'RTL63!J\SV.S-4];6E:869W($WVQ;6MFX8L
MTG1.]0P\*U&#H5V%Y7#B2K,J';&->K0OKGM=O=.IZV+Z\"F'FMS=<Q6V52F'
M;82M \)FZ:UV756Z$J45RH\'F:WS3,.T\H!KZ9.>QQ3X'/B#S=0%K][T9LGE
MFW*$CUZH*K58URE4/;F$ZJ00UA:G;7GS)Z*] \FOQD[X@W$,4SYR*#<J0F5V
MM\CLBA[;)'#,M(2[+15UI=NDRM_>UK&C2OC*)TUK)'QKEB8#2X [35F:'<_!
MQ<5_OPJ&5].(B?R#=J5]X1/'_$=MQ)R(;5\F<=J*LL+LIM3\A,0DBG\9_AXQ
MTI&J*F*"P>W6H2/*Y95/D%98W%H%R0(OU](-JR.)()V!F_LUQ%&.X,O2;'AP
M:R=\C-"FQO4LO)"5MVN<IE]'#G@=OGN7D+7Z-707L3L1B&AKE5#>K'QRM/)>
MK3XYLD&.;+W5E46.SL"/_4<0N"_>:*2<U WM:$+ JK+>Q@1 JZU +D]09%:8
MS$U%IB.7R)R!XTG)&<JKUE=J<-JBORJDSXIN-KYGZ/++J^U18)6W*9_\K(KD
MZY ?NJ<RM^\#E\O+/*)NLG(CNG&GQUJ5,\<[2Z'R]D_&&*Q5G591^WO8"=?J
MP?FQ->I.5<8<R"]7>J7T:H-"O*IZA8U]5ENWVT>A5R<5O)2/W_OD.7UO1)4?
ME#A_B(/!CZ=@!$2-"/R[\UZ[HQJ1FD;T6< '-YAB[8F$,_K66=T9)/R2(7VC
M3#H4_OC"MEW)@6Q2_/&)\UH&/KYU+'F\I_M)3R!;$T7B*Y>*S4KJ>U@QH7>M
M$RI14^IPFNJP)I;%=NI@8;=?KW5B=Y/'<LR%4VPF"<;8O>D@V=6%Y8:'P]UX
M,@I>&?O&1D[,W%R4L*%BM&C41LM0E74G*$PK3&OMPF23,-60G)?KDO,HS"R_
M[72$L<T%B.JZ<W-''&FYO5JT+Z[;NFEN??4OCR^N9&A][[4>&>H@^$G'.DFP
M(,DM:Y)TFP0AB4,PY TB6M"'M9$_6]8^HGS<6CI'$M5YW5!QNI0(,64I^%?^
M[:$Z1[85I-[%M:5WNG5=D"G?=GV9^,"&#'B& Y">F3]58SKK'"4WKQ>SH@_+
M -FW96E05?[K86?%;6E(C28?RFF8LDS..K\:OL'\/;+"@Z_=VFX=]1E-O,:S
M]'9+?L!MA?PN@[VN0>0L/.OUKE77C8!$8&PREX&MY_E2VS1F( ;%I(3RB'?A
M$>>[%.85!:_.I$%M44ZQ)$[Q<IFQ+Z[;+5EDY@P*)C\%_N-5S,*Q2MD>(&6[
M<9>7T6P3XH\A3;^LRML>/&^[A33A)$]3-UNR2-,9>*Z9Y7597R'];)Q# #)^
M!RI^ ")NH0!=,J>]IBSWQ\I=W6-.8 T1&GH_F7OU)PN#,NGI75Q3SY'Y7A+Q
M.0//E==SC3+_M9Y4[6EKPCH %KD4V>8&U6@2#$%;EO$QRCW=,XQ%/5)DD!19
M)^:6'M%%6$UULMMUX1^ULJQ_!U99.\R+ZZZI-[<?>UR52T?@T9ZQQ*U_!599
MXJR+ZU9/[]6&+B07"L+Q.<&WP7CL<;1]0D% 08"E,W^ N B7.-]:,ZRW];7
M5S5]/R/OG>^-_GX1AU,V?T^0KAXGM>37GHE<"]XY*VP2]/)7U<CM"6$O),09
M9,O*X#WX")C-\!UJ0N"H_??[MEFN]YP\6SSB"K__SNB2C!^ TU_#Y$H_0I[K
MVIMEFO:5A0]/3LB6GH'WGS^6#$SE;R'!^NJ$7\*'&)O\_ML935GV5'$$-C,U
M;"]7_44+:NUL09V+ZV8#6#)?+3CW@39Q0NT9'ZA-6*A%^,CWVL+MT-^C[79"
MRXYNIO%3$((0N)5=CNX2>I<OL!KOMUY@#UOGFR6%#O/DY^O5G/1E^CZ(?Q]%
MT]E]+<UGFLV]T+SZNHR]K.O+-(YB\*; &%99G%EY<9LP<\/%@>,."V.K970-
M*?:(;WPD?+::]!B&(T6E7C>9!Y_C-1G]*OQMU78#H1*N\LG.ZNGOV\B.+9OL
M[#N>D<\)QH P\'?J ?-75/4VS1VYOQNN1C;?-[>-;?U*LW['M\[5@==K-IN;
M^KV[)WR9<[EZ6U9US[?RRA9Z<&LL#QS@KJ%W2UH-YXF._MDV E16UUL/D:M[
MRE47M@V-P55N]TI+@18*=KE'K#FQ]H$-V+C/0GZ06H:NF4VS1=\L_9.E:_#
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
M_]EHIL\2GBVWEVW9 C(5TN_ZSF43"]2YN#:->6#_8^SA5=)1I3YQ^P.AN_!
M.-)<SU&[8K_[(8-E_@GG[Z/C^5JP)/%3L]<U&Q-\?/[L9<OY!ZR&]U//BU!O
M#Y[8QJN#;>_,.UMP/;[Y6@W$IIKO-JO?-SN7.+@>H5K;7S.EBV]58N6@6;WM
M)<I2$G5T$E6KC[?Y:=):<)H<:8[M2"[QP!V_(H@2#X$O611KC#<'J2*:S8MH
M<JU67X8?^6 !__$VB$I+R4S[XKK;5:4TIRDJJTIIELK*^@>O2KV=N!RMJJ:I
M28XZLLG1>=74Y-F(536N%PTXU .LY0G^=H67G;EBF[,KJ*D5J'7@_HQF5.>#
MH/@7_P'I_1W(?9]1NVK"TJ2$I=7=!K%214)2&N0%!_N6(K7<.M=7\:B$2DJA
M6G#*[U*HK*9L0G5>$3C=BM&]"8_#8S8^NPZ6G:"O$V%33)2;M/X')XGA(+%T
MOEB94AAE[5WJAEH^T:F]?&%3B3%K: A48B.GQ5D7S'LK ;(NKLUY:*5C+6PX
MDM/W]LGQ'^%Y6+V0P7$3CB)=NH\\I^^-%#2WU-#<5I5"FH.(V<=TNO 6&)U'
M;&[_/WOOWMPVDNR)?A6$]IP==P3%X4.D)/=>1:AE]ZSW=ML.R[V]Y_ZS 1)%
M$=,@P % R9Q/?_-5A<*+#XD208D1NV?:% E4965FY>.7F<]AWWT*QS$VNON@
M^'\_A4QE]4V-E7^/^*.MXS7],P*8#9K2\/9XDS^S ?B2O#7 #'>K=W;L$W<P
MS+53;,2S,-40.PKW>J\'$7L@-SH&V\(TBH\US<]TF5L$KN+[<P1-/'EZQC$,
MWDQ-NB90LS6W7&!/KZ<,4CPR2C,99>LK=PVC7():&3XE"M/ '$CS+].OL9J[
MOJ>QAXG5T^OH+S_?%2MD_Z F*HZ5)VWAKT./XIC4H*=*2,XZ("27Y0*^HQ?3
M4&YZYKOWL6S415W; ,?ER$'/#&)X=H74.[GJ7KS&GM?-O[IUCU1G[BXQ@O'6
MG.%G@2Z4)4.3^2M3>=LPT1DF%UN#83GT>'2!FL=3SWM=/Y65L%"KU7OZM),C
M/S62G[;VJ$O\5&89RGPTA6'>EFL-IQ,O"B.C;/=:_FSA'(Z^]A,+"LHB\G$V
M#Z*E4M^X(\)O&;&-;<OG8/UE:[T\Q-3UY<4Q=7TPG+<3OWR?+'=.XX8Z9V77
MZ^C$-X_==NK$[Y/M+G J]>5%4R*0;\OAYWJ%( KON!;QJ9;# =O5+^3[F[YI
MBSC&CK9/D!P:$-P=/$5?']VV9K+7XZ%MN^.O00<U<_])]L"1OYK)7X^/ZN^0
MO[K(7[W>4YJ''J,(CV 5G9%Q8G6OPL6;ZP[T0C?]#3P'WX =[F\6"6Q8Q5I<
MEEL+"V;%.JU^]^B=O3X6>_QMOUL>PX'#EZV+LZ<T;CORV&%$ %Z6LS#-=-8:
M=,N<=?A>?F_0/A\T_<[_K%*'6A+,<32J!Y?_:.F\6R3P'W[XDUTN:>I<GQ(
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
M9,\-GZOWZ8SAM$<J5!,_Y9_#_V(<#&7X(<3W$EWXH59^ %?)BL_UR,2\=_V
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
MEH;L-SOL^,$*.QZF9?MGEK&HSW!D;HJ;Y'UD813\C(.^YK[19@#QI\1K5D;
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
MP^7B;V2W%%9S!%%L#:+HOR80!4$?J@ 1@WH0A4 LFJ!K'WN!W*"9>6!71R[
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
M!]J'.81((A:X;C_F<=>(B@1QR=FM\XLST&.QDK=^@506:SK%L>L.'\'K@->
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
M2#^%AG- 8C1_M')"YM0+F<WHW$!!,(;N? YTY-M88+,I6&#)(EX*-\U4.HV
M2X65DHSK@F45JUNL1AK"/-NK4B>VE&+O;!=;N#,,%V4Q68RG>A.6]&+#;IM-
MA7\KNJQN;A7=CJ?*6P3JRP191C\Y8YB/(DH\1\;L[,MD W/JXC !L!GL6Q\!
M=FU'H+1&-6>P[DT..W_*JS7/00-8SR[:W>%VL,7#:Q_;R$7U=P'+/(#X;W6X
MT>RI.SA,)!EVX.6M41M>_L]2I<,S-N1M\)ENT$*V(G#<[/-^:M/=;4*.KXEH
M_2/1MB=:;Z_]BLDBW8-6N673C4;ZH>G$\T309/OXKP4. _D4XFFAR?4U@->0
M&_KQ]NO79XE)#-H7@PV671%,1QX\[;>[%78;EE_A$TZNWG5_*@1R']$):&.F
M/_ 6+6S4%Q.G%YW5B=,G>D?<0WO;HNX^0O/ZK6'WR47=VY[Q 70->N/\NJ95
MR%[X]:QS<G79ZO3*XP./[/K&V;771';MGER=M\[.>H? KCOJI-MXP^U/-X[=
M,*W,6S7>#NL]Q0Y[?0U3:W1!_T5T05G<$</6.[;A?:5<=?;B-\Q*$/)9?V<@
MY"/'-9/CUM0WOCC'G36-XW;:VKG?[# V-_E<DR5^2J?F)\#X#UW2&NGK#DZN
MNF>MSM,'IAQ"C<F143=CU#653OOAU.$+166.C'HXC+JF3F@_C'K^0O&88YG1
M<6E/*IBQ<&RY\HINIWU1 +.=\F>[U@IG[<':2%:O/I+5:Y^=;9A1W.FRSS="
MX3G/\NZ+#2&G@AW>UAO,M>?H[%&A=C*%>G%R-1P.6J \2RJ5$M[;[O&\@7N\
M/+D:#"]:O8K('D(R\_#*,G:<<0*$WL7T/P':$2: /6X3[*MKC47/-YTE"B(J
MI67U(@V6]>#Q/:F*0;OW)$UQL6'(>P_"Z@#OI*Z/79,9V/T@V0-=GL"CJD/%
M[$UMC?%KG\(PNG?31>+\%KFAE"ED111^R#Q(U0*)4@Y5G(&WYTA1SP<U2MN%
M(I9M2BDWK1?LGU2PT;Z1TRN*\@;;%N7=('09+F-BN&L\NSN%G80_^,DXB))%
M%:Y\T"F7Z0TZY3*]W+,=Z^')H\KU^!45+^XU!-B^98G([RH>_^7<PO?O G\.
MFW)N7/CM,DF=V\5\'BR=Z[M8$<$.KVKD5S6*%VZ\!/W<[;6<!^R0G@IP'U2%
MNYI-+RYR0YJ^JWCV99)CIV\J@?MA/+T.O0\*M'XT1SH9@N4N,=C&^+VWB!_
MYDQ4F/%Q]^1J L\ZQ:NFR)*;'8SS3A22_>WBET1/_<3JCX_] 9MWCI;RKYF[
M=*(1*E*Z%K'_-E9;X54+=/OW<J;H6N0B%5*@<$8+;'].7;TGSO^"?][[;LOQ
ML4FWM(@T[<&IXH8[=</U!X?@X]*3;,EM4,CFDL4C&[1D95G[=WQR-.<V]!F8
M#\YTEN@2GE5$P L"#AC[Y--RS.>X,2RLR;3_:M:X?!'6Z#%KL!52XHUT"C[-
MW=3F\EZ/B'BKYJFF8J_;6D\6JD"9L9E31R+].NN$>L-BU5'CM<)'*KE!HO(D
M >19T1!#TA!HSC'7&8)LP%3 [9GMA_^Z]ST6%S,, 6?^8CE13B#&9OBG<Q\%
M<+)4N&:]3 1OO@!>HA]J<6T[?RHN")O'ZMZ/%@DF&Q2* FS:XZ)/?$5Q ;#+
MJ3^>ZD7"P3L>W+-H=>]J;:WLX5JUY#OX(Y$?<@,RYOF.LB#=B2XB=P/X<<@+
MX8(\5ERP@H?<@&74!)1_,7,X"@,HX*W9S&4_Q9?2E P0^!3/S5B&Y@$)*+^D
M[7RU)@[@WW%\!RABXA!B@0UT#W$7'5C5*<D3>3 TUHNM)#G/%RD3W@DC)XC
MP(G7G$"+B9%PD>$#E]CJXZ"I(?GSR#A#3UE84'8K28F6M.Q$ZMDRX<IKI@/3
M%'_F^/,_MNF_=)F'$0^VFAE5,01*W-UA=C. 2W#>+L]H=( . ?DKVZVW^]SK
MQ;&2[0K77-9+W+C=DGO/O60<;->^K%\RC6//"XFV2/S$NC?%5JJ*)#@ZB$#_
MMZ]#";U"*,'YCD^,E2F;KX_8</5SB5@YK%6O@E98!<%:\IN?_ 7^-'[@WJFN
MH0PX.(8TPY.K;CD\_Y^MK==UMMMUG9]<#:N6M3+(5;.TP6Z7=@$"4%X:C5):
MQ')MF;OOZ2QS8+KVPR+6MSU-E5H5<&MIRR'VK#%60,CM],=PM?X0%<'ARK(J
MX7 FK/DZ213\/^^[^Z-*B5R>7/7:Y=&81HE0Q+'B@B>[0QIWJ#AW$T7WJ&.
M^GEK#701J)S$N$&9;R;7.5S0/ 0L45IQX8BO($!3HI']89*I/Y_##M$LTV.H
MIJ!63V?PTZF>A&[-9\M&H-$XL ;Z)EM&9SXR-Y0\#I3ZF\Q'/^ 0S6=@9^WO
M#RM"-)E$, VR>Y6,===,$$,%.%;^/3("_&HQ!]&";\W=)7W;* RP3#TU47%L
M*0]VB- )MN2,^\.8YUO6-FIL7A5YV]=@_0:X_LNJ$!/X4*E/P1T[JE+8!KXH
M ?V3O4TG(*CS2((F]8*'H64OIWLBB=A)X(826JY;_%@S84\<!E@$.!UMYY=(
M^SDUM$7^JEXM*B/V7MB)"ND::C=3@7Q8*#-/SHUAAWKE5L>7.A+(SEH%/W6?
MS:JVN^#.7^*"&W9.KOKMLBVH+[A&L@4>?=%T-XU[8A4HET6-FP5)ZZ&_E7["
M:@0G57)@(8ERZB,?33P8MKEX@E]5Q2!=\!7:Y<K5@V,0C)6H- TD7JR*[<&.
MW5*+W5)[!0)9_[?!?4_K\WZ]RKQ?_REYOP8.;KY%IU;=^6/'RF< '0[8QOPR
M3B,Q,<_+)AHJ_<\J28/__M]Z_?[/SEH".._P)Y)RR_WRYCJ?9;/^V,I-K16#
MD[,-]B/&YI6<B0F4M+7#5]Y$GOI(DW7!-E3C:0@DO%LZ<] AF$W"[WN<:W)"
M,*L#8R>B,6F]A<I#SG^F"=;N*/"3J4)W(DPPL^3<4,=%RH)XU&_Q\R*-2?<X
M(PS*HX_I8IN\0PLR "=DV9Y>I\I8][)47=%$MT_I44?I>O<TY=N%0W7!O,:6
MA![\D;,O][0,G6-#([_ 62WGYL/_.3WO=BY:3@KT53126?V(QN#@XSSF< R'
MD@+;^G"0DXD_]E4X7K9X:W.P3( B=)ZX4#:'S4=)"K8>)CK^5/#T"!Z.O3Q+
M^_Z?"MR)J7-+CU;X:. +VI_K?$7?R.EFSTPIW0 WJ5ZW&8(.NX.G_ M.(N5.
MC9REI"A=$\V!R$82]%OB%^S3I*M@-S<,@41CYF5XZ@P#@N![)@WUS5 :%\$R
M<[*R#<RI%0]J,Y0,OG%))&SQ1(<MBE.;P2S'=I^'4Q!<.JD:Q5+VIBT-=5:'
M<# "=3W^U\)GN]!.YA?$=E=Z>N\L\X<A1Q6)\?-*,C?)A=_*%;M\!@]^31UI
MAJ@=]DZN0C\H.6Z-5"9;YCMQ!,/SDK8.L6PYQGU,B993N)SL>'1>M-M9D\M]
MB:V=56>G\UL#91<+2*JD(K73O2(15DP*K4R@'I &W-)=J[P"#L\PMT%E_8:J
MF(K<A&M1WZWT#RO/9VLO$7_(3D22^'<A&4-DYL%/*0U@3()W6?]P^&XT%O-<
MOYECE?C3(% $XB$0E(K3I2"#?L+7V-:#\T>U%5*YLU;N:M;9Q20*$%Z%,HF
M+ 2CZ?R&B:CD[^Y<_L'_MXG89SZ0M4^<?9#M=1PE&M^$#O,/7[*<G!Y2Q<Q0
MRYDL",":%84 ]\ F(O*JEAG50@4<0WE93KR:[$JUA;T?G%(C96?+&VP-M.<E
M;C "_]0-NM,WV#Y/?9/;LY&\,-DGU:RJ+C$G&DFC(MBG[U"B@*^ %;K7Y)(/
M)MV$Q4V5PDZX^KJZH#]8A?^JMJH6M,1[N(EXZXMBHI2^/$HN>@-CH%L:D%]U
M]/A[%E'^#I1.)BHFS?*;/U9AH@[9NOS=7=;@,RB8$-V[<0IF@AU?+X93Y#L$
MH*K\Q;.(W+#]E/+N?GMEG\*]:@D+RX3PK22C*9P*05T6!&>9Q[Y*4=K6)3]T
M<-E7 2' I@M8HS.EB/78C1FJHR..W4+$40]Q"51N&%#VFE1+A(#./(;5&0M=
M_ST6>- V*T=[6V_>=AVJ!/(KO5[[#VWG&LLWYFXL%0A(OO*B:;-2#^#E7E=<
MJB2,6KD/X;]31=!$D&ZE-)XPC;#5 JD(KLH0H]O^:1)-T@?*)P5W40R"-$OH
M'#0RHL7H5^7.^$%F80FF&. _L) ,/QG[<QTAS6^0YA<[:.A131@[#G;%I[&2
M8%TX/@V^D]);Y3NP+$92?5/>0P1'>^.GRY9S ]("IQ/Z+J,[4LH.H?-%ZS +
M-4]9XC-^0>%J.;>@,_ZMX@!^V<Z^.G43)XP>,#\#RCD0MEO''?!F+'JSWIV]
MLH&WSTJA+Y;1E$*T?,=6P/>VA?=V.V=/PK%L:4^<;V)/)-,H3A%CAC@'QIZ9
M>AE*!(K:67T?4=V7Z"IAH03</PR 9]R3>;!&<66YA"+&K4,<GE&_[/\^@OR#
M%69=OOP"'W9#48 [>-4W6@;6JVU]" BQ7W<(6=6<QFL9EG/O@"YW<@Y;[K8&
M3+[5;LL;NJSFJ@P\;F(HI9MKZL<U#,%GWB4UG"^/JPC)F/I[8I% +$%XB3_#
M^T1"2B+-UNOH4I"*LT1?ECDLK-RCA' ? =E#4W48A81XS393?P_FKLM/]I*P
M(E??DJU,HB@0!$QM(D-@ E ,3,=Y"%R_NGE!YWSCX[VFIW^5A^.:-JK[/>^
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
M6]%"343O#\]]@G- D)D$-?P#\RMW&\*LBH(&C:;HQY.Q6AQ04RIF7!;NHR8
M>/1]E 0&AWO$S/6:B5)[[B7+J),Q1E(J9DHU:IIA9F2\C" 56FK33U,>:N=<
M&/M)<04 .D98V,126A%T7(EKGN RYHZ7LUP5]D%K&37K*#I638)&&0FV7N_\
M).LUJUBF[9J-\:DBD)/QI+E0KXW_=,8ELNVLNNW,N+"V,Z.P[<P4I.VL+FL1
ME8EDS&4K2D(HM-2,Z1>4VZ'P7X%W_H.P:MG09^>F=%3@PJ-''#4BA4BH#<,9
M0OB)5!RBT+)GHX$Q#DBHI4@_A3% &FRF!75A0Q8W)[$^R?OY0CNQO*V]>G&B
M>HDXNHQK@R=%$Z(^[ASX61KRH+.%OD8AECAV76P'9E><-0?;V1Y&S52#SFR/
M*48#*YJ,X7;A,.VGW5-4Z60%"03&B@+!@G[>2L'*Z",&FS6']& 9!'PE;6"*
M+8[+461".$^7L(-.3)QU&)C7-HC*7>)BI6"W?$P^)5M!(V2&H"55U73^=T95
MM JGW*)M6X5CU/3:=^!5U,:/)^-Y\:92\>/RJ5Z"4D0-(D!7%*&.B[,.0D-"
MH!S)CD5M82:>DPJJ3%0AS_IB OJHH= -#K$FJ3$5:ANFGG9@+CK*[>YA%VQ#
M6RBL]$Q_DGD"\*1'>\.I+9T[\<G6]J/X(V;H:#;>5S[#C=NKL,KFW8<[_ V/
M873QK+&7-GWN/<NG2-(K>"*V2(@X\+(MV/L:ONY?2)'1>Y9FP?Q)@K.35GO:
M9@^8T<[/ .UV!POO0Q0VGKXLAL0.Y1Z;PCE1)\.H_>S^)7PDEX4)=#:6$UYB
MF!<;!.C(GB>RHBTO^'VTO)(_9K&>^DVZS0YV"6QC4R/:M5%' Q_\L'T$BV,
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
M>0 1Z#YMB[5# %%[RW4CML.26 YGOAXE0]9A*P12%J_=I 5';'Q*R+A ,Z"
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
M/%)N*59?"+;#)!E'W#&&;*-P+BCI=I:C@*Q$U_T%OV,Y3FH3C\2![5N!XI"
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
M7VU<>;Y'D&RF&"RC@;.@YZWE?21;=Z4C>]^BUKEDFPAR36 *3_(^[\&2K;N
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
M<": Q0"UX3\L'(Y->2R_0B$)T>]GH .OZ!?!U 7."7Y]G1Y;0$<!Q&54=/0
M[)X"H;T._WBSL@,P!E]>VR[= _W2&WZDO/8*BXTR8P?H(;.WXSJDT9C5(O&)
M2/R7^=LC>.OO^=?-^<B<:H5OC4=JX>MECU+5T42=MWI4^>OZS+CL16G5AUXS
MVJI'4P"+9WE$>U+-)IL2;Z#]OS"B]Z&XC[+-H/O+N<G$!*,6<U;$OF6T=+K:
M<.$TPPL]-%T>6OM#T]K(C4L8$$N-4+2N-KZ'($O@-?P@8'EV-N(\2P47-L.L
M]?8O9D299J81&!KV..:'D,T,#2-#\XXFF@HQ+K!BBJ[D),E)&4Z:C+OB)'VP
MT,T\U*[D),E)U\%):E><9(!.,K4^<-*I1W"?@0:^A$E;.A8D3L^6NCA5$^H+
MMG]Y$^HUK68>=!DGM)H?.S,0Q70XUV8=S8\58)RSI*&8AFK&$'=$0XB-,YSH
M91,Z) WUFH8F)Z&A*45>'^<1+LY#0U<0.?I*''CQ81CV+;*)'*LGV[5IC9;]
M(Q=$:L06!2=QB6PQ/0E;S :+^7"JYPL2]K-C!7#Z) W%-#0["0W-!XO)<#[+
MPVA*&KH &MHSB-N.ALSQ8*&.A^JT*X=:$)^9T<-8;$5-T7/;&D \8L'+7W38
MZLK;83$-+O=J(VL='\[%B)$]HVXMA0C"DNO#\:PK([^C:SR3CRDY6')PAQQ\
M$EO2U- ?F4^["O5(#I8<+#F8<_!I+'D=E+ Q-#N+UIZ1A:D3\'=:[IT$\$Q
MITE SQR@IWIA@)Y&(: G[X<N^ [KQ>A!]P4=:46;)&B7$>V$V&#W*[93\*FS
M=0T:]R]*P$:9OU"8J#W;-3(]&K([0[!&""$7);LS9'?&9=WDA=;,R^X,V9TA
MNS..DV-/3L>1+1FR_+5N^.)I O$&9H0-+0_-+F!UK*PSEXQVA#IS[22,9M*J
MMDDORM EHTE&.P*CZ2=AM,E@80S5@@%I C+:-?1[A%!(7[[>YNQ>65P=<\=)
MFCS,*7+'5!6EN+K+ OW#^*;GU'.2]@X3<?^&AI&GGB8A$'FI;2_U)/T6YAPO
M=5;0;W%M(1I$[9-]#N7DN&>?0X[B)N/!0BL0(K((_0*(Y"3%9Q.L'QU.C*Z
M1B0-"45#)RE_FF@8D0&"%82&KL 71#1<Z0*6TOUT3^R8EG2/97]#W;P@%_!@
MNA&-45J7T/8G9/BJ'3!9+BH2P ;@K_V-3P/(7\V'X7_M(=U++QFEYDD2I1.*
MCJ+-\A;GM7G)'[Y^_BR]Y%)RU+N"4IQ,P#XUNDK,2P]')"*9[IESSA/)M'"6
MNJ21"Z"1#M*E!1/4$K0SPS+7F:9J;P0A(-G*?YP.JRMP@#HYF8L1'J<QB>=B
M-/&+X(E)QI6,VY_>_>E8B-Y]R;@"4:EDW!ZT[$]5,5KVC]6O7]J?WZXO^^P#
M;-_O_' >Y-K;^=O'_+S'9YQT#*_0!NRMIWPE&XLU6=-JR7>>BS/J\2FW#S[A
MO=C/-CSJJV\K7U[@1(<*/)M2$#SXW:--ULI'.FC9MASE;KVVE\0?5H_@)#_)
M<H< !WGWLVPF.)TZRR;2WZWI..^/= 4?XD<EB!I.<(F$_0RD%) XA!$/\IYJ
M@\7VN6 T/1W]'&XO6F@P4O[$B9MXN/'XQW-TY2M6=#%L@K.WVP9;.&Z\M)W+
MIW[RCB\&J8H32''>H1]-!,?O'>UV,A<3M+T9'6[F$?:8OYO<K0!I.DX$OX!S
M2W'_L#U@PX='NDV"X[GICFV?H@T ?0.QON"D:MM;#:/IZ R8(,")IA_)O0^<
M\Z)HLR$RCCE2OCW:@?+DK6R@;\8O/L%',20#"_Z%PX_P=?BQ6E@$^,Q_[>]9
MF;E\5#R3^6UR_FP\G9;/+?WD+GT"GWA/V'^CXY_$QV\,%N-1?@*( K3LL'U'
M0Y1AYT$]B&\\4GD5"Z@7;.XFQ<W=5%8).$2VDB_O7.5_=BY1M/FP1-;"FFY7
M/^S  \+B,U^#6,PR*6OE:#QD5U3@EOLR4C[O_&!GN=&47BM\9B08F%R )_A+
M&XB-$3KE?Z8:TC\0#??EHB-(MHS2ZTS,=.=$';[[;,$GG,"#IVWI9=8SRO%Y
M(VT"\0&Z9%5L"W'&*&($S+T5#%/O*R.<W3SYY.+-N81=*25W-F5Z:_N,!>#J
M_\=[=)4_;'2P4H;&9Z B&[?&[!1J=D0J)C8[X")N=P\[T '8[<W,$/R1;R )
M&5(2?2EA]L0,>$^VSX2XRN_^B*\@^CIGOJ$"/[*U\+9WFXU#OX9J(DGNP!3
M\LJ3M:+Z*'[8WT(&PX=&BCK);?'L;JZR&5@.4LH/S]FQWX+S6!-[N_,IIX3K
M:?:\<#N46P.NK/"%C1=L;T!4 ;6&S)@6'HF?:O!#(^5])8$KG+8U*B21CWQ\
MVP+=2VZV0'-#!3CN9FD%CW@&C#HLIR-Y,3^6P)B FU0A,&!39!N>N$_^O;-1
M->"X1#^ S=$1BN2'[>T"YR4I7.HD)ISZ=NO;]SN\%B"YF!;HJ/AA:^E$X<?8
MLZBYF[EKO.(TR0NHJ^D3FP]\_X>/&O66;NT6KNT'R H2O.[1OBHFJ"MW[.;H
M]@+Q]E2Y@[^ , .0"8PBT7ZQP)#_83D[$IG:D3VR"T*I\]8!=7?S=?GH.22X
M^1UD%TH[^K&;C6\O\7- P\11N$7#X,@0APP?^X#T, I])([FES<\,M&6Y2-X
M 0ZY6^=-<3QZ>AGL+H)_P@8H\]P&P>Z)O?8- Q/?X ?>@@3Z'LN5:0YA#E[#
MGR<@@S:P@*V_(UF\-G@J7"@<=$ WQLZ8K&XL$#?6 YB-\>_"L3%N#P^ZX)S)
MT\;Q7@C)'#@])[)ZG<<]9$16 H''EE^P*6T@4=T:/$JBNDE4MQZCNK&M46@W
M]J?$=[MDU"V)[[;'H4E\MST.[>KPW= ;7:)E[-AKHKQ"7SO(]12TV?N^Y"!J
M&K78=*<X9P6ITONLMY\(H;]]B3^2M.H_@IV,UCQ)6/+AM7PC_I.:SW^L=C[>
M5&SASP8+<S0O,Z+WN<>]&S>NBPX0ADL@.I@C'<PD'9R>#HI+)\Y$![,QTL&T
MD@ZNH''WGQZ.07#L[8MLWZ6$ZM(,>PUH9\,BH#PEY^)5590<W\T7:QM'PV^T
MF(C5P6*JCPYN)>JB\?$LU_C+T>"))-7G$#2%H7IML)A,1@<#;DJJEU1?2/6Z
MD%2O ]5KHZ[J0_M.]5<0>/AB!]]OUC[!B3Y8XQ1L%1^(0[9HBV*HX05]A/OY
MQ*^GE'6-P4(?"0%I)0#GRF;B'EMIC4G>'"R,@D(=2?*2Y'MFHC4F>83U.-P^
MNQ"2OX+869086MD_L&YVI;S8Q%G)0)HH]EEX0>_Y_91R[A3[,0Y65A?B6<EX
M0H_ML\8D/Y,D+TG^(NRSQB0_ER2?L<^B/NU<AW;51&Y61%Q46JP?,G/[[,U3
M1RWN+N4@UD&2[P/>:^Y' Q;BQ?&T&R/XY'ZFS4?_\+T@:(99$'<1SQ'M?SR$
M2\GWXU3VII=M>:^I&*?=LCI8F"5;9KO*-TSP^GVD#^RX"JO\6;=X$#:I4D)9
M*=:V7:?5T>GD ^]2B\Z-PIN!+^S;;F OJ3 NP+.8:X.%4=#A'$Z8IP32<J>3
MZJ:RD^XT;DF;ZZA6\FY_U,.::40-*CM1Z;E@:>H0>WI1L=D_"$BZ4';WHG%C
MJHUFT\F%]TA4__C5U-//98O$I5WIA1:NRQ:)@ULDKB#I+JO]]ZONQ0Y:<:I[
MYX:L\CX3'<R$H@.SG@ZN(%,EJ[R;A2VG4Q$K_^:3P6)JC(08ZR1 Y%(&Z[NF
M^IF05#\%JB\*K%PGU5^!Z2WK705764TKH>8X3;P W_(Z*Z%D\5^/]55CDL=9
MZX>;:!="\E?@4LGB/\&55<.RD/EX+,M"I'-U$<JJ,<FKDN3+*J%*)E94SK#@
M#S>TT133ZAN/P2"_IB"O]@\29]-_21=(\5S\./Z*=1]XSFY;_I5<PNA,F*'S
M& >*'5GB?Q_]."GZ0&[N?6)]O['6L-C7EO-LO00H*9)U8K9[DSG#LNUG2LHX
M[=V@=8 O\,-8_#_W_M\710LLKFB;SB=83Y*I:,-7)[VO: L+UY2P<(W6(S$4
MUD2)VH;XK(()"YB2=4HEU4S)ZA1$/TX5KU#0^LKJGL_$IW*MIIZI&#JHLQJP
MO_C9W+*CH6^^AX.)A&N^!&P^UA"S7LUW<]:7-)5O>B+ZIG6*NYV?1YLN4\J
M5!^,[)O<;A+9E\-'OQ2C^<['1A:WM^<\'%>E4C45Q,6IYQR3$RAIT/(\IG<O
MJM4FYDB;=E089HX,K?BM,U:KX:(Z0?2M27WWJK:%35)2J*& Y=GX7RIX@@;^
MT"4>2*@6%*X7Z(F$-;'*9Y#@["50(@H]J'V*XZZF=.K5)U?YQFN=&]4/=7E"
MT3.N(&ETEQC-9FUSXT]4F3VJ;+DX;O- XG+^X.&15F,QYV,<$#6<ZWG#\SQS
M[#O(Y1Q,=*)Q8//YLD4[["<[53IS1_7E$BR5<>1"74U5=9$/-QDL9J.Y$)@L
M^^BF_N6(_L%B)3(G5*&"]ANO?(*FOX02FJ(2&A?T_)TA8'Z:X>@7K(2*=MA/
MAJI00FFN:J^$@D,BBK6*:-:-(NJ(G:[ 20IO9#]5U%MOZ%77N@C#G9^"8$=6
M;/@F(W\6-DK&IZ/S+M(F6"FDYHD_%R20OHS(:N0J?)ECJY%<RWU+3:(B L5(
M/QC_7KHT3:GH(QN-3%9___!S@\-UK\NYZ5RC'.C=?(PF50>W[HI>"1L7'#)4
M@0)256"::3ZBUEP!23]&  4D_9@3L$];?:0-%NI\-!:B:>DZ7)N:_(]VB,=3
MFFSKH>9JJ;CT(\-*'9P94G5PHX::V54XN]E=2S]+^EE'4'/Z<8L>]\\9J0:&
MZF8SZ6#)G)$XRDF="9\S4FGAPMB8"&()2E]+^EIUOM9,X)R1.D$@'TV(29?7
MX5C)G%$WNJB+G)&*%0BS//'+G)$ %"-]F9.JD8-S1C-L99H+ =5P'2Z-S!D)
MY=WLE3.:#Q8S/=_S*'-& A"8]&,Z54 GSAEI8]!'VFA\<(Q-NC8=Y8QTF3/:
M*RPG>LI(P^$M0W7:%3"=3!F)J>6NPLT2-6.D:8/%=*0+,0;W.MPKF3%JX%,)
MGS#2:#W#3!<"Y5LZ6M+1:N!H"9POT@P<QBZ=*IDO$BVZ=X)TD68"\<\/B=;)
M=)$ 2N0J_)@C*Y%#LT7:!/6()@26_76X,S);)))GLT^R2)N"*S/+LXQ,%@E
M7]*'Z5+]G#I71)$3"GKWI%=SGE11^4S9YJDB#G&JPP6LO!T"IM(<0F,LQ'[H
MM99JS1 ]ES2_N"WIX\O;DCI8S(>JE@\#U;]P4$[P4)Z6SK9TMH]@[1B")@UU
M#:O[5:%J,M,306KPX]D3HH$<I\4]G\]',U-O"WMN:*/)=-H-PK@V,M5)9[#G
MIES4R1=5@UHO >(E0/QA /'7>T[*%_)DV2YZD._@RZC:=I:CX 3[*SVAVX<'
MGSS@ *)/<!ZV&]A+2CET^HP<*U!Q<F*,%9"7$5W&OXCEG_PB>G,Z):0JXX8'
MQ0UE\._<826]+*PDIU*(0G(R\M./R(\A5.2G T[J2*&)2G5-ISDBN=S74]1]
M:XJ*O*F$,X6^E):2XK#)Y>O5SG\!^RPF-G.PF(PB& 6^E44#ZTW*TBN4I><S
M2R*WF,]C;6F>X*"?H2$A#DY>_$S#_IV9^[VM81/+W$_<S9[F/IW_,S-$&5@B
MR]ID6=M9S?T$1[4U]VD!6\$<\=YR4D<*352J.Y&Y7TY19>:^VL#<QTD[([,3
M<U_*THN7I?N8)=V0?-K<5PM,$&,,I#S6!!&;5Q"__R<),(4+[IA"?F[($O^Q
M]90?\+*,YPMFX+.[8@7V]*:^>?C2P6%^0T4_VCR\B5B<X*0,35V&KCJ/W5_/
M:"W= 8/6?6JB!*ID]%\0=Z UH1W@)1@Z)@4TF120DE? I$ ])T3%=(<E#0QC
ML)@.IV)UNJ=K\+,<6E.3;[LK.,S7Z@QX,$U&I8[1P?2ECNL(# NM%]\>B?(<
MEHE:O$ST ?%NE!661:XMVU=^X#4J&W RJ%6M>&N%/&T<[X5@:X&W_*YXC$;8
M-^%)MDM]$09B.:3."XY @Y^"K_^7>.VQE0@_],WW<!H?X3 X2><-"!RS4A1/
M'.ZYW^-BQW:P88I'40"O1V][OST?=\9B!WM&/(%1 9[-4 %G$\6B_8,X+R,%
MV6KK;2T'.('+0LY%P#LALY 0..< =JD&83"/%&^/04R^X2;WD?>3^%!G@\5X
M5#:>"&2> _^JX:(:Y/)^G,,<SZ', ^'G4,]<-8-_>W$4YAAE2QER9T02:9Z+
M[((F;7+E*OE4FO<V0%D0AN_8SL(8WE#9/D;M!T+9"R"/GJV@'04:U03X@9L2
M7XG_ YSS8GK\PW-_, ,422^@-)9\_YT7;/_PMO\B\*-+[\&%+:V2(&5%1*8.
M%JHZRL^R44)>@_O9N7[T/&;KW%!7$;88__A0<<F66D5A@'8=PVT@F3H6C]KN
M^"[29M-0>7ZTEX\@[OD3\*/1[RH>:"C%RIMI&\IN^+N5/K%FY+SBHQTYDP ?
M/9^_A)]KX/F:&AI/N7(X!3\49#D;/X0[M-V=Q1KF$[S.B=701E/L6-UX 5W#
M:WH'("AXHRKWKA)?Y&VNX_@KUGW@.;MM^5>*^FW/(4GF>N: $O_[Z,=M'P_D
MYMXGUO<;:PV+?6TYS]9+@!Y.4E:"H,R<8=GV,V*5NUDW&!W %_AA+&@_5=$"
M,]?(:6$ZG]Q,F 2!=X#XMN&KT\J?/YU4IT]\;0,WV,L&M_,%> B(&1F7"B2%
ML9/RZK__STS3QF^^?+T-Z)_JFU_3Q]0NT+5\)*N=0^[6Q=P<+X.NXD_@S8"N
MY!85J+U]^88.[C?XA;<.O!^S)CCF!&3G!@G>!U4NQB74.K5KSW&\9VQZX2WP
MNR=8+#PD4.#$%8OMVB;!Z_#03]LJ#_PT&C.>:M,K/\$@M=%-L[4Y,FJ:K=MT
M@'>X*$W$#O G>[5RB.P %^) "CO J0NOH ^OH!.OL";>\D;P([?T7DR3Y)&/
M)WK %11S@$U]PSV >\NQW&5AD;8J:S@J:CBTZ?Q(F8X/_]Z!(?3)!4MI1R%]
M[\ -][\]6B[W(B.7*"SCR"4O3!Q3?W!YMCA99)DLO(QD85G(/<-,W<7<F_/2
M/H%XTQPLU.G(/'@*MVPLDL-].E1-L_&Y5%,ZN56DF2; ,F8^==7;?@=9[7[A
MJBG-3"=438<GBLTISIX[7#W),OEV9?+7Y3BUG=!P1O7$KJ=*/<T&"S-?WRX'
M!0E 9])G$D0QI;EH+\4T!RMP-C(.;N"2CE.W,3_M$,?JBD=]:[-CS1WJ(!HX
M&2.W'3R!N-4M2V],>F-'47I'JL ^;J!P@IV3(T,4F(<K<,0.B1/VUA-KK;0T
M8>.$$ZS%FUY0(Z1TQRY=,VF]C1-.="Q\G1T<E9?>V GBA+W-8K6/$YY-/=7&
M"2<&N%1Z/K N1[H*0&C29Q)$,QT>*)R8@\5\-#ZX"5LZ3MW&"?5#'*NKCA/J
M L<)L9=:.SA(T>J6I3<FO;&CZ#R]EW'"*78<&Z( K%V!(R;K"9LHK6.!^G00
M)YP-%IK:56Y+>F/2&SNZ9CH2)N$IXH1S"K8C87?[$"?L;1:K?9SP;.JI-DXX
M10B9 IQJ65 H *%)GTD0S71XG'"JEL# 2<?IK''"@P8]-9[]VP^]UEJMF>*&
M"J=8GJ%W%99O,^19^F32)^M>\YE]C!9.=51Z9AEFY9G<L?!W^*V8%'^I*_ .
M'=:U\G8(D925#PV!9=I^[)BXRP>S1 LD*H8#&P,I#Q6+0C\"0=(I+HA1A5C+
M0WP1T< 4KMUM5UG;2'L,!R\!$1LAQ J)$;D';&W6DRQ&*=T'Q[]6$)2@EC/+
MN  V<HH%**,\Q$>(&MD2J39;:R/RSDT$J,V;'A%>9FMLVFQ#HLB;G^#F\RG:
M:/,I,-J.L&C/SLJU(+7[X,%F[>L3(L)&3V)?RA)%T;U/:XB^*4@L_"/8)K%@
MW=B/0ZE_9!!8%+!B@\!.9RD.RX# ]HBCZ$\= !!*L3D3^*!_'@$?-"=3,_B@
MM^ZJ$#&T&BP4P80N#BST3PD6*L%">X3D*"18Z#D/I ]@H07Q-K$/]>1XH841
MARM(1$O(T"XB^A-Q(_K@ R^TPTL[9+I:@*#]E:2K)WT,VL]4+%@<S21FJ*SQ
M%4HW386M\9WA5&3UX*)X6>,K@&JZDGSRM+<UOC.=8EH;@F65+]FWDD6^0NNG
MVB+?&>9BQWF&D46^ A":])H$44V'%_G.3.HZ:;+*]V0D]I%-$"6KOW_XN;']
M:W.B>J2EHINJ4E0X?$$[1%%)'TH 125]J%-P$DY-WDM+38')YB-3@GT*EIS:
M#]M:8M9HLYG ::M9)[%!B5DCM,:[$M=LULN$%IOEH':%&R6],IG0ZD1KG6T^
M:S:AE2@Y?NWNGFY6WO:&KZQ H\UQ6L-P;,@9>>(RH/35JGBM5_FNN0H&Y$B3
M"*,RW254(/%LVJLVW37'WO\"2%Z9[A* T*1/)8AF.CS=-=?ED#R9[I)::N]T
MU]P8+'1##FD0DM6D"R6(HCHPW36G$QJFHB#P7H'_)"<T'#5N.#_;=/)<MJME
MX'!" X=:'A1&)L/$YVKIN%6Q85^28?/I8#$=30XNGI<NF\R%=:G3SC:=_,!<
MV Q5FJD?K-*D(R> XKH.1VY^K@GE'>3"Z'R'L2B=EE?@R\E<F-#:JRX7!AO"
M 0\%S?PR&28 I4F?2A#5=' R##:M#A:ST5QZ5C(9)M54^V08[$D#7\J<RFR8
MB+PFG2A!--5AV3#8L3Y8&!T$ *4+)<(@HKI,R)5DQ+1^9L1@M\9@H0W'ZM%3
M8C(K=FZ]>"4>G-;#K!CLUT2MJ KFO(6_(R<5"06#WW)2T9]M)A6QH4!"SBMJ
M-[PDXVR*.[(&F!_K4D;Y K%P=DG1;9SJT%N/29KWY]BGU<>^SYRD:7]VCYGC
M43Z3==1!2:>BVJ;SD"Y!SM7,)1-H2!,0W1S-G'R_1L=3FOX\]I2F>6YNCV!3
MFE1PZ5+\G1G3I*09&C^$6[3='5U(BL4Y<1K::(I3<#9>0!?QFIX^B(=X^,TO
MZ4%"?'3../Z*=0\>X6Y;_I7<+(TS"9"YD3F@Q/\^^K&%^4!N[GUB?;^QUK#8
MUY;S;+T$:&LF123(Q\P9EFT_(TVY!7N#3B>^P ]C0>>?%"TP<XV<&*;SR<V4
M"0YX!ZAO&[XZ$V3R$WUB\U%<P!.4_MTEN7E'=_4 :U1J)G1][FA"5R%K)Y;$
MAOA0%K_;;8,MF!&PP.J17,"O:NZ&\$7\_0L;U?59CNJ2H[IZ-41)CNJ2H[KD
MJ*XK2XC)45W5.2]=F)Q7/JVE8BF'UA7HH<Q;R;S5T?-6>B_S5JK.$.</1H>2
M58>RGZM#[301!MNP0#D9@\5D)DH!E"PVE,6&=<IITEOT0N V"K\AP>9/1V*R
M94MH!57?LJ5B/<+XD$)XZ3@)H)NNPW$ZFV[JH&5+G2)0Z,B4 (:R9TOJJ7UZ
MMM398&'DB]=ERY8 M":]*$$TU:$M6^J<#NR:YYOXI0]UUA25'-BU;_+*$#AY
MI8T'B\DD[WY)D$+Q^59Z9U6,UINTEJ9BT-"0<Y3[$#2\(F?L;',FZX.&FC98
MZ 4S[J0K)@"E25>LBI'Z%334<.J).AH?'#24WMAI@X97E-PZFYYJ%#34C,%B
M>HBFDNDM 335=3A09]-4AP8--1-+<$>'3VGMJ0]%&\O.0&7T'C.]@5?A376E
MI):KG\$1^8K^NU([8?6%*.5*TIF2SM2>*NH4?+2?9L*J"W,T%H7'KL"!DA.Y
MCIO.,D5.9\V W>9=E3C)=):8JNXZO+$TH_4GG36G0[>NU163Z2Q!PX13<=-9
M^ABTEI'O();I+ $H37I@58S4KW26KG:CFZ0S)K-9EZ:F&F6S=&VP,/+]]S*;
M)0"M2?])$$5U:#9+UZ4')6+(<+^I)?PT>"R)PP9F\.BO.Z X$2:@F!QHLK9_
MDM7-?XCO%2I"8[! ?$]5>].1,=D%@4B?3_I\1PE%3GH0BJQAWJ2"-;MFWDYT
M[)&FA9P=8[[U&)'/Z3$B^!DV0X3 )E=YO<P2>L/,7)%VT/:3_DQ3T">#Q7B4
M-P]#8/NV8S0RQ2E";YV.T<C#6<5;;S]'8]*?*2(ZIC<KIH@,TX,T,L#[_94@
MC4=LM!IF,1%VF$6-*DM2Q'RP<&TG3Q%=#+= .2S@-!;ZQ+T _!5ZZ@H_YQBL
M_^U=!-;?%<^<BC7^(@JJSR=V?0B&'^E8JDIA:\HNH-CX\.9;!UCYYNORT7-(
M</,[F",X!X4>Q\T&S S\W).W(H["*,5CVA<U,S[M <VN43F;E7AXTW&2TS[]
M\?%\"(G-C41CC'&!/&/1$Z4&Q@,#QT2F(5Q6!/@#>&1P!P&3&X&RVOGA^:,9
MD[%BTM*,'6[!7(W9=(JN<69J [YJ9(<@1.,/Z$^&<V=NPKDS5@ ?X!RP"_CZ
M.0F541#?ZNN"X2V<7<I7;0QZ,F]A.AF9>KMA"&6/0IC:R;R+T08]\):+7:9V
M>Q(/(?]?P*IL9Q^07]F?.:8]Y9"!?DT8R$&&G"C;">=V'C;X0&=_@3QU[#51
M7E&/M<EDA</+#_L0<"H9;C8M'GFTC[L5A8)N8P47WLDWXC\U&61FJ(.%&?N7
M4?#E(#K>+Q]R-CK^IX>CUARPJZZKI*S4JG5Y=J" =&.KMKNT114=QW?S!:RU
MR&R]T1(DK $)&P7AH3-$-L]RC[]<E=;Y8@??;]8^(8J-%@!!9QY(X[K*; YC
M7>.HK(L7]!'NYQ._GG+&U8N'Y)XAZ]]'ONV9EHVLQ97]PUX1=Z6\V,2YLBKN
M/JC<]_Q^ROG6P'1,'A?VJO5MN ;^29W&1SN969@>'A?E3/-QJ8HAM>&PTZ(9
MJ%I/IYX&J;&G&+23<T_EW-/^Q(M8#18?>RJGGLJIIW+J:7_;/A*SR.6XT_85
ML6=K JFLB 6C_&;E;6_XTHK*8@T$8AK."J8DR&FHHE"C[!.IXC9!BUL+ZA,F
M@X4Q4B5LM!R&*I+N2H=HQ!J&:DP'BZDNRF01V7@A&R_J=%.:F_HU#-68X5R#
MF1")R'H%%<:\8*&DG#N/^:DK< LE&D!?E&DC-  #H9X,.;M52%Z3;IX@JO10
M. !S/%C,1IJ$ Q E>KG?)+QTF_=U=OJ?;53#H7%-4Z5Q32W?>7A0L[]LYQ=,
M%5Z'5SD_UYR'PR*>)H)/C:9"5-I(AU((\I<.93L-;)YM%FTCA]+$$MCI(4"H
MTJ$40(M>AT-IGFO<[,$.I8&!V>G!>1#I4';D4.XWBT(ZE-I\WEN'DA;*3 I
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
M*_R#5U?APTH>$!9=85VCM56L'4A&BPI+YT6Y)TN@606\ A#N]@^B[#9((ML
M5P4"8<@+AIX?[>4C+O892R,WQ'^RM[R<+2".0PN /)?5P V5C4_6Q/?#HK@A
M**G[+7QPN?/MK4T"K)-&+;2%OS9AM=B2]_7 :UA/C;H/5N%[3\H63A]_B?[7
M=N%$B.+YRI/GQU5&P4BY@X,B]_[.\N%PIZPT.W7 &R_8WL1;A8V[*WK$^&PX
MRXI#'&%56["SP@_#098]C?ZD3Y]"?-IIK%@1:-I_M:OJ+*F=7JY^!J^1"^[6
M5 !\C4[V2_2[4<?([1.HU6VS!ME)0A3IF)@O5^3 & YN .O,HI\?*5GBIL4&
M< JV"^<&1\$$H?(>S]B^W]$SB#@Y+A9\?QO5"E*:_VQO$*(0",.!__ZW];1Y
MH[SSHL]__OHN)O,DQ<(;0$Z!XNU\A?Q<.KN WM4#O2>X1'Q]!1+9)W0E2'CP
M:K"#KVXIS].KAGVLR!:)WH6MY&ARJ#S!EA\M>'( XE[QP!H!<JO4%OI8*[O-
M<'A)0?+QV?-7 7$3MV0,%MM'.+X;S$MF%0&O>^,K!@HG/^&JMOS::!'@^UM@
M>=R(!9OX:3_MGO"MEF2J-R-3:E+RNDV<,?$I0(Y:DO:T:0X69C/29"60\!?>
M=%)*C90_HU)(O-H@<21#I!M: )Z7=/@1_E2@#- PW\F6%D7""_<O0$$ORA/9
M/L*I4]*Q S@:(.X5+\,$%N TRTLG^1-".<;)&&EV1=:4WD#B?=DY1#%4,U&^
M&?.\<KO<"EA$7*D#_^*:Q/6P-!ID@I\X8CS#^(CQ7Y3;@/[# E6\L,1]C0H+
M]<]>(@X*Z18HPU%XHY!!)2*3(ZP8G"^_9Y?7$B0BI<0^_?&QT$[^1,N3W],K
M9@*0B0E8,GVK52/!;()&>TXZ5$@#1HV\1AJU !7DFY3.9](R084H<D'!Y<H?
M\:I'ROO*#Z9Z3L!,:7NFLR,<:IGD39XL=E(/P8D;&IIZE -N>W#4V%H24.LK
M!;@] )GM>TM"5D%K198^U'(]]LYS QOD,+41O_ ?OW._@44;L)_Y!RZD4'/-
M!HO9:)H_N4AG^=VL.:*#-LLN7/%\L)B.YN4K!O7D4A7(3YU.#D %^C?:6_ $
M=TZ+^/'25R#GE[&RHP@\;D"ZNZIPVSR:%?"MAY8&=C 5WLN<!FK+[Z4K$2V"
M3J+V>4(AI4UTA>(K> ZZ3-Q8OXMM$V,V?J-D_.^4(_H.N-GSLQ])&_/\,Q_M
M[7\>@!Q!#H0&_8@:ZP'],C72(PN??:?8R&?OM;/GT6*/;/HRDYY:(X>;QW4-
MHNU8M*6M/%>!?\TCV<K%MST,7X_.4%"C62G@AC!8X"?C $%A-"9T\D-M19?#
ME!L<"#^C(-IYV3(X%>=",1Y;G&J$%@4:S7!=R@9>M1*RE;8B4BIMF4#0QV9A
M B&O\,*?^D@(&!+80E 8^Y]K"+22I[5?<(E,.S/F3NIHO/V4J4!-@_BTBHFL
M;T9S"ZO&:&T.ZN/)>>S!N8X(3T/#& _A^+HW"$ONOHV-:'1J(V9.^BA&XMP
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
M]3-XW:3OO(@1HCM(&JR%C*$-%OKX8/P$Z0 )2%<E"OI$A*5CT;\H8X8D89W
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
M=UC>,^^F2??POR.ICX]GTW^=^ ZI[<W\,)+)%#'H/[@G']YJGIQF^05_#QQ
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
M"<^'#YC-\#XBM@0L;>)ZG0'%#2T*,>"\%P\HB+]A(22#K@COK=%C^=!*8BN
M31[@ZC7/L>%6T\B:,N)UH\4'OT:;=9I=.)*6FD6& [:R+XT)\0'&0,C@-X;)
M]XP^$2PJ6+,6/PS,1;B9R==-[Z)AI34P#XYYQ0<A.XRT-Y)^H[KT*[4L4ZM
MTQ57@%1VL34]O*MIX8.G]#MXK 6T-W)FHXA9* DAE!ORL<U":1Y"$X(_"&53
M'O8%241FUL##0-1!PQ*$+Q*.":\$QZ#B*S_U=#GLQ!)$@3,)>E3&8*4:PR^0
M*LL$EQ(%.K ,)FD)$01CC""XDN$0O11\2.#FHM+A^R6WL*:Q;0Y-/9,(4YD7
M6H5[DEYO2MU$ZB$,)0PUTP5/V@H(:V4Q3;FL[]B2P@O CPXFW"0SX=_46,*?
M2Z^!!OZY3PA5$Y1Q0H<_X=]2:POH3T"IN:"8V9\D#%%@3PHP>34?OF2\B1*,
M]S#3NX%,_&9ZN#1J\WD!F'SQ9\SPFTXPAH@1&5P 4B"\RY0I/+Z.>!DSJX!+
MX>F>'[T+W#2,*YBNP84QU.MHPXZUGS1&D-:MF>73  :*LV6.S5"U@EGL O%Q
M/W[8F(Z0?6<D..'ZGAL,*9V/:U^DOFG>/5 &_E/,0VHO\9!@)9>QY=+']]"L
M2\UUI_#1[\A2N>>\BP>@]3K%@N6JTMG+,KM%E]G=RS)[ZXZ3T]@"/,J8&.BR
M,:)(#1X&*W/8%'^.* )6LND8R*?$0S-F-7L+UVVVF@:1A[U!1V^IS8&B]EHM
MM3M0ACVCT>D9LO8/N0G.]::(/#?"7SY4YVN:>\<GDMRL2\6Z,J$W?,4L\<#-
MZ;RD-AJS(]_@P_.9ADQXI[FM[A;94OQN>0]1*F)B%=;ZMO.F^8$GW3FPGGZH
MNDK2_CODM;GQRALR ($&3UE668P['9 $=J(MA4"\P_AA7E!S*]-,5WR)A7*B
M*KT\2;D%+>X&N)482LIM ?D.;B) 5$* <GE;QJ&(0W#VYHE,I39\ONC2]SC'
MOI>S&!R'E?F!F,Z[G87RD.*9M*BD8]@)@3*'1'H&UYR&<^^XPW(#I)%N:]+=
M8Q2_CBZ)^0_7,1S2A$YJ;\9WO=0F*-S2(UAB-D&;\N[NLL:U#ZP75O6*%TU<
M$WR4"3HQD67&PL7[Y.1BH6JUL=AT2//YC::3L/!B)BRM-K +SZ+P>R6YF7(C
M"YC'+?@,SA198.NEF#2-["%K,:,]@_K\A,5;&&_WP=W11V3))MW>WZ1"[NDM
MNJ<Q^X?A"[N7-PM+=C".8&G&JE,;ZMF%_SYKUDE\<2 -\ KL5);Z>*8+O@S_
MDK[=X?"^7"+O-S'AY>!X_QV;0@9TRJ:3H\;C^"QX@-%A"P <'J1(!GJ4R ,>
MYL8;!\H$2HE,T%IR_EA-)J#A%TT?89@NFUD!SP-WW[&)ESCQ"+\$_^O<FP#Q
MAB8PD N7@U4#' %NV<BQ#(\GH$3Y!UHR=T.+3Z^'!+CK3SP"0=U9\#1257.[
M >= 8WA =T,6M?Y5&VW8Q7I.@Y-?PM!+K.YID"@R;$H[WML[3Z &&\(KT92
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
M!GGT\DB*JH"-,=7Y=N#J7"#KQ&%9^.$NO1.7[QNL<.2\IREM>J$(U.B7<(/
M\CU:*.)29",\ $J[)[-U\YM<7C_4Z!\XW"^B!8XH!$'P</DXD\^5/O AZI</
M5]_"T>DU.I('_X_.\@D9E78JM0 X:0-X6 S<7B<>[2.I\<7QQFM>XLUQ$:%0
M%V/\Q*I#T6$4TYWQ@'8NY>V>L<VE%=*$%<6PW]/)V0-BX7Q#QKBIQ>& .)0B
M:HI$E(Q?C2X-!RS2CU\=-LK0_4%\"87[C1Z94\YT:4V/(^ETA"W.L'=<VKG.
MU$W"F]S%?>SFL4M=^LZ+@V#K;8#4S _Q+FZHTN++N/27 Y;HQ.:C9:A;0\!\
MBLB]-F2"2>;89!8R9W<2]U@G"R"PK(;HNU)U41=_Z4'W':S(85W>U%1OU?_P
MDC"FN?$^Q[S VI73BT"(>9?A" QQ)A=V&N;3]? 7 4IVZA= 6V=,I ]@+'H?
MV:RLY&/YB+/TKU#R*$PD9J5EX8+._0S%*00/Y,(0A=BR<"9,/%^4:&BQLK<-
M/#93+'H[G-C%YX)Z(WAYYO['5X<82<$YC@^ K,"+OH+A^.H 7]>D5QS?QG54
M8EW 3(/ >(67#6='AG/=^* -;)"KN?J(STB,=!;3&J_$!JI9->!:RZ)M)Q$S
MC;%IFW0%N-U\"DYV-EC68C[<J>6SZF"Q1;&@+S7V3I=\<!Q?V0@ ]#1\::0!
MS.ET; C_430D4N,P;HYAHQV#3BPRX<:F2T'$9]-A(VN*S;',(@F5E$0?X[ W
M-N-&/H%\Z6-P'DELOD033^Z09R05KI\$K"=RIFLRZ&L7.6Q:E[XFQZ2$G!WV
M_(X?1_!"RK^+24EGK(?+10'A#\]7OK&B095!7X<]$\T1/F:5+HG11(N'V"26
M!HK6?:UVN_L9;V')=*)?.05OH[>\ SS,:QK>[&#3\-F1!ILT#=\ZK1!AWUV3
MSK08(C1&8TH]S]%-JBY")F*2,KO==*@K[PG.^8P.>4S^%)&1C4QD%T6BD%),
M'HZIC\8$1SKI(&:%J97<7]&Q?%G'<C5#H0TZEL_;[;.J]37G,;9*&QU%HV'
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
M*URAYFG/^H@8@44>AM>V;_K3/TR#7)F>;CE>X)('.VXRUG>)YMTY]NL=K,%
M6OC>K8TJ\,TT LVZ ;$ 8;W$T<"N2;RO4_;G-*?=6J]U>.W6;GE;-=K^S'(0
M6I$0DD8I@:W6HC9K" KQG..#;J0FQAZ?3L^R QU[/(.@6YQZ7.'=.](!OF+J
M\1I$*S3U^!@&*J0.V45BM,@.F^\,+*GYO'=L/7!=D&IFXA;._>JUSRZ::JW1
MV[BX2V1>5HK-A&PME:TEM96;RQ:> G1K;64V0% UV3J(M,IJIR^NFL&8#8#@
MOY$S33N@_C@++B /F:VF0>1A;]#16VISH*B]5DOM#I1ASVAT>H:L_4-N*F<Y
MT=1]AR3RF^G?.SZ1Y'9=*MHPW_/=0/<#%X-:MO&$(5AB]#&Z9/HF\>( 4%[L
MILOD'J@+U_CAA_B8=$@G]1CI<@0D1-LLNUG)4%9FXQ+/Q-OG/54YB-"1+?TM
ML*8\IF?:$@4+G$P@O9O^2'("5R+V2+-U@I#EPFZ\PC8.'3WP:M([D33;!LG!
M;_&X*4E69TBO'@0>/-7S\.X\6@D_G5CPKAATU*1WQ_T!?^D8N38"/9P&H$TF
MKO,3X-8GL+ZB0UXZJ;/?F2$O<_CLTO'\>WK#A^$C/P;PKBUS;-KX]2/0V#'X
MF(_<63 ];,HRF_3U2UVZ8D0)8ZR9$*O$HZMJWA'"7'S:%9/ 1F_E:&/%QR-C
MZ C%LSRF4]&57+9]DN\ @4UO'DL5C,TO/8)/K(1C2$[P'=X)@^_S$X*2J_<(
M:&T4-HGE:+$O!L0F0].'!7J^5Y=>@(>H_& PUPL&GJ\!^F@6B(GNC"<6P6M
ME)_)Q&?<A9Q%[QC?G]X+!-B%>VE@6?@CX+#7$1^T$;@@^W\&FNO#U4 YO$%=
M^H. #I1LQY?(3XSXXXK9UL#-IY('R&$.P>0 \!@&0!?"]\=+;Q#);"*^2WWV
MX&!63Z8-EJ92[V!\>?:\+@HK_Y*&8!Z4;L27: .PJP)__B4SX90]X;3<:&8H
M-//?46313;17<CYPB?;C7!O"FC]KUKLV]=!&22HDT$894LZC0D9WS>F'<_%?
M _?31=XR%RC/C;3DWI%1 OUY[[Q%4J;,Z,2M*[K>/A1=LX'S<V?#"+\P2* "
M0P''F?APTW\1:@HD"?!G8+J$3D":8W6X 'DV08/=G3AH=X3FQW1U!(S4*VY-
M 0 $)0*8-H-_&1V>/2==J,1WQI'AN6Q5+8F$-L_3Y5YQ1=U=FO2SHJ)6,&5_
M_BGY&N?[W:5)/2LN35UV@)\\A*_EFA0U:>#8@<?$$GC8E8"YJ<#C:W ;@THC
MO(1-V-M1<42&SP.O&.?,# S6I;G9/P>&\$MLGJ)V#M(7T%;C !499I1HP@9:
M8@.UYMM 1>(HW;,#L)F6B,Q.]R,_QG/[<OV-Q39[=>GRM_[]K]?/TNV]U+^_
MDJYNG_N_/EU??[N^?WF6_KA]^4WJ7UX^?+]_Z>,'#_?A/V_O?Z47W-S>]^\O
M;_MW>.GEW</S]Z?KYY) 9%<,>N_8I#Z[YA79LB6O&MY+'>]6!T"7<DD?V.3A
M_N7IX>Z9[OGCT\/E]56E-SK_G:[?-"N(YE;&,4F))NDY%E.RCZX#NA$^]BK[
M>OE\_ #F-]P$$!%-\AJ8. 9AZ8%>,"'NF^GQ-T<[_7)DDJ%T_9/H 2H>Z6$X
M-'4^P)-]=P,VAJV#>9[Z+K(L)AJ>4YB3B)YX5R.F*5CT8]/W"1@PA-$=%2Q<
M2(9#9O%@>#$<$FH0+_8]B#O_IHF-FD0;A;EQN*.YF8_,[T"C2?K+OW45I?%E
M^0UK])?R%[RQP3T:T/M/@04/DU7M7&Y](!_I17++X/^*Z7W]$RP+^Y5(?1WV
M84S0@$@]B1ERB1= AY(Z06B=^"/-IX-7&56884)LNF#ZG1F/N0U],OJ; 0F)
MQ4:U!M0N9"8->&.^QRX'8WYH6N#<N>B%P2[-6;ID>I'57V.KQ6S5&EPU!A$
MUC1XP MO3AAS\ >"_P@\0AU2\/7 !&/S8_FWS]>72&&Y\P6>0(F*]\&7\NI)
MP9RWWRPF#:R%3W0"7T(?V*<$J<V]:'?4K*03-W>+-5T/Q@&S@-G\WO$8W",]
M-(F=#*[$!P)K DD-Q8K&3R8NVM0U?(J&J:V4;:PI=;X0K9#_7C67/BS:FEA\
MZ])7#3?'L5D F40 7UL;Y'#T,_*6P79W10"B 8D(V1;BD01W94RD>8Y-4W8U
M#VY.PQL6N'U6CC&R;\5#[[CZ4.YO$;M$8OY$90:WZA8-(!M(SM6N!"ZHF]@)
M]DO8\NJ1H8#^9>#I37 8-NXQ!A/!KX3]-KT1/4T##AIKINW#_Z?_-H#!,6!F
MAO31D_091O1Q0_I0.?("?<2TFYG252DI3RFN84IQ#3_6XQU9]D0*%Z$F2 $J
M?/9F&G.X.A9BQOB6J0U,R_2G*"5YC\'U42,#/M)B:R#^J8=Y>2P.20G[D[]
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
M5$^6\BYEZ!*!UX>.U\I_GB):GZZO'J8C-3JJV@O3D<)Y#JDVW30YB,\LA \
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
M5T@A[.]P>\L"+[3! 0I&I V>M.G8H3U0I-_=O_R;HJI%O-<C.E\,O0:!ZP?
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
M3+C2$]X.5/$00S:V9JME[%"-",62%H005DK)3FN0+%'X7.V6L:@V UZ+]B?
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
M?"9,UW1R_N_K<G%RM&37BUZ;NQ4?0SY6OG]?+,JGZ6S&3T]1&*&@*N2G(P5
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
MM/PXS;3Z;3$KDXPZZ%@*!&I=F5%8CIRE@9I*0BEU+=V';MZ-9DQA1U<R=!)
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
M9]D-<SX69_2FW@/0NH3:>)"1OQA5)&"P$2PK *],$6'8D];WP_L&SEQW)]=
MPAN07;?F\F2-.A0V6BD;UW)Y!,%Z"\Z2%4H5AZIWP_!NR+Z!T]G#<^IHD74_
M:GNA3&^%9FM12<C6O=HN(VVKCRE1FV/GG#15&]F[D68G8-]"G_'@YN]HB0U'
MIDWBYC(L1*]-8E=7^\@+5[SFY%P RY%35@Q*J:$&V=P)ZELXPSTXB8Z2U"#&
M[1^X/FOJV90[MWC9_K[ V6QUID+7UUFOK2M*9="V%=V1!(0:!>3HI'2D4J[=
MZ74<Y&^@*WE(<SBTD/L-)^>-:?_?O+^/;,,WTYY6Z^4TKZFT'S#HJ]^X])N_
MTG*Z*#?SC6>3UW_^G-_C_!V]Q37]7"OE]417HV/P$4PF!!.K!<RBS6/4 9,Q
MV>ONER@_Z@H?\;PU)E>5CQ8\>0*CA6>NZ@R81&'&5%*ZMU(X]+SU$X\:'2_'
M;TG*#B'^I\BS%7*UNMKN/U'8^G2PC2N(H'3(&D4153P2/1_,LSWQ>-)OGI['
MBG]H>MXVJ\,K[Y6,"*5HPWY@>W,TM0O#8XV.?*RR=X;JT(&<3WS5ZC=/SV/%
M/PYG:^*BCJ56#SH;5OA6*&"L!-8%*=@:D/.]"Q=' >ZQ6QN7^<JG/F<1+Y=?
M6)J;&1L3VU+AN9T)S:A9SV0'L76U6VFCKCF7TOWNO)V ?3<.T%Z\NW$53W<9
M]KQ8]^H.7%\W1>V2L0&$DQ8,<2B&1C5H,I8LI RY][3^AS!]-V[+4:3J*KDA
MYZF?75'VEO+BW7S:/NSJ=_Z;RDM:XW1VT&#U/3Z]PX3U0]?2[<J0>UJ87FR<
MB-?SWZ<G5)=X0NQVU,7R9#-#+<VF[S;+_8V_KNJ4R@W@$Y\5.ZM,/X?MF@B-
M&:)# 5KQ]W6T[)IT-R)#+NC(R9-;9)]N0_9/^O35B]H'U?:$OG.H6F4Q1=YL
M4V6[B:\JD*(:49TWCAZD_< 81V6W1T/Z:[,O1T&0CA<TWK/--_=-ABBU+ F$
M#J[-20J,,1-4C5$';61UO8<Y[(=P5%["Z"C\"%)_'&:^.#W9R/4CO<!U?O_'
MAZ\WR_R^.%O ^0[_O%I/65[TIOZ^Q/D*-Z-J?V4GBB952%^+55 R*C!8$[OA
M(D).VEN7<S:N>TI^^&6-*H/R;;X#3\"O(9WQB[&<_R!<G2ZW0YE_R^^IG,YH
M>U/0M3@"Y^6V'H0C7/;N&#HX]L/NRY'N_];?N GA^>T0SAJ1VURHU7KBBR[)
M) GL5<16S)40D\U0DW?6&!E#D;MYFX<!./H(Z;4[Q-I8^DOWB%U^U$^XFJXF
M"7/RV3H050?VGAQ"P.K )FM#$4H%W_UPZ9X8Q^!>/QJI;IP_'5*@7;/4$V5J
M20DK!(%R>_XL%?*0A:5 QFFINSNY_-PQN*Y/1H^]-W[(PL0=JYU80Y;(2 @Y
MM(M3G #T;-,%19+5>!UQ"&+LAJZWQOWZ<EY]52?5E5I0:U!D$ Q5?C%3R1 "
MV<2Q09OH/;"FO0O;&#3LP+QZ2*]V$5M??<KOK>.77[!O7@08TU[P2 F<I,3>
M>U26>I>;QZ)/'YD,>V]WOY$?^YIWQXJ>I"@0 U4P;.DA16? ^QR]]3E([%UA
M.LY?Z[XG.6^#3"I_7RY6JZLC[GXB#H3;3?&3@,5F42HD-!E,<>T^0&O 6N\I
M5(D2>X\'ZP)\5,?8!J7GGJ[N '(?[#6^TYHD4EX4WA 97.O LZQN%']16+Q2
MSHIH>C=D]'0"'DOO/RGON@COL2S$G6]%.Z+_]:U X6U6H1W.EVW.=7$0."H
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
M-[^]QR7]A*MVPOJD?6?SFYL)6MG84E G5K"I)8.D;XNH'.L:C(E2RMU[;+L
MW_.ZQ>^%B@-*]RF(N>FTG2BB&(4WX!PI-OPH(0K>)QN"M#65X.43<G"#<4P7
M+#XQW?:7V=',VLP(W-Y8-/U(5_3PPWA__DSY=#-7]]+;,2FI6*'JYMA38C^3
M J2BV$/ E'3Q)B5S+5B]8UII5UB[T,Q_@S1[8@$.K=K.YS*?%V#X%YZO5K1>
MM4F_6_G-9HM/[;#-1"1/49BF@S-'.5ZVB9/: U6G>?MBR*;W"=#C4>_"R_ -
M\O*)Y/H$?5,WEH#S3D?7CGO@<'U4AZRX4^;XQJ.W)V\KDD2F(6A37!N3V*+2
M(B!ZC3*XD*/K/7;A=B2]&@(N/O5J57N2 JGD;8NW:5-A#A D!^)H;,R.=/56
M#[W0JY#&E-OMP(Z[*O\]!-*]4>8"U$6B9G,?75TL/^&RK"86K0ZV1269,H-C
M2QXH;:Y4*%$G87+N73?8$=J8DK./P9H. AJ./1>W,K>VYFL O7%!%@O!M>M%
M;6FMTFQ[<VAI&9TBN=YM%'O &],)M\=@42=!#<>DNV<.B"*S2)*=1L6.I'$I
M0N*- (NQ9%^)&.'01#IJ?L1C95\?@T=]Q#2H.3O_WEDHTNH/RX_4!FUO#GVV
MP6\B&BO:N)6\N6$Y1]X2Y#= 56NMJ5;IX7VAG9".*:/Z2,:NL_CZY+EN /VE
M7>)]<4_4A(VPJXD-<32;YB67("C+@2868:4/3L7=[MEYX$%C2GEVY$/W/1Y.
MP;2Y<9^FLQGS\?5\C?-W+2FV_=$D8E"DHX#DV3$S[,A#3!&A*D(CC6DS>@:/
M)>_&-Z9$YF,HDUZB&HY,%Y,HSXOD#/4E?:398FM3V343NJ0,.J3"*)6!J#E8
ME)G57.8 0,JA3K?LBG%,6<C'(%5/D0T8EVWJ03J(4',-X*MK5X"0@J0RKUXX
M'XJT1?G!<UL[5^KB=T22_;=_."I\G:6^[9+.7UH(2*P"E2X"BP<AD9DJ781@
M/;),I<&:G57=*[P[@]LI-2B^(\9TD=)CAE67ZWZL L\*/JM[^AX<.F<\:\:
M08)1K@+JTBZV3LE;E3.6H<[@]5S'3M3\GM+6CRW[X5C\ C],USB[F0)+UD5M
M,AOMW,9 DPZ JKIV 6$IU:%7.+@JO O<3GS[GA+>7:0TW,GB2^7*B50ALV %
MJ,9H(P4CBDE#MK8$F2J#[=TE>A^>7BF.2Q_YMI'J3?UC=1XX^2ITUCY"%5&Q
M$%*$&%U@41N-R2GKU-Z9CGN>-\8:X=%4N"OMT6O?A]"@E]=JM?.F3:)Q-NLV
M>$^UPY<)M XJ.\\1=1XP+.U ^ ?464B:=8DW4'6KB$25($ARO-?$ZLSR>M/@
MGLHAH]&'/3W0@0P/IVSVWO_'4?0D^:G(_DO";,$$F0&IZM:S*ZJK,9?N0_EV
M5_2CJ8'WIL71HAC.E;REV8RDKQ8EL]897C'QBM'$!"6A56T:K1B^3GE8E^ 3
M%+H'TR!'"F;(+D".BDZFV^M]<5ZV ^#><:C/>[ I=;1(Z9BFO[T^OT./W^'K
MZ=32=_&4B8K1.,P(T1;VODQ@QXA4!%6U]T7DJ$7O2=L7#S]6MUQ<__QU.1ZU
ML-48( ZL.%SF+R%)P=&SD#G+.,#LQYLHQN1Z'R;IZ\KBR)WN9DV^-N-\7581
ME3(KI6QR;#K*0+)M1*EE3:B+<\F+SA*_B6),;D4?B1^YTWV:!UY-Y\T.?85
M29!/COD6/'^I[=JYE#U0*EF$@M&)!Y7]K9\\)F-_G "/W[@GLN3_P'6[U/;+
M\SG.OJRFJT6]RL%A[/NN3QW6ZA^T]FZ^ +M_=/5Y%[TCO^*7#>"7IS21P0F?
ML^.WOAV2<[4P+X6!(G,)4OAH9.]0;E=LQ]J5>Y_SQ[Q,5WEQ.E^W/'ZK8#\_
M:7^;4"U>Q:(A6")^/76$F(4&TH%=91=B++V3WP<!'9<_,@#;KANOX<4YD$?S
MM6<KRI)--+&5P!F,1-^N#-?@C1 VHDO)],ZDW0%E7+[-(["GAT@&YT>VRK/M
MMMM3@<8K"TDG"=)YC=YE:;L7WG;B1[<5GM]5(Q)[.94$9"=;OUG,$(P,[+E4
MG;1TU13W. N]]>ZTI]6F/=BQ(_T/D<?0;\&EJX9RJ3DY%<#:YN5&ER&))-I%
M9IJJLYA,[SS&@Z#&I#D?D2D'2F7<8<=$/DW@P<\=1>AQ??V/'7S8*H)2@2#)
M4,#HDB&Z9"%G::Q$);SKG=@;1?!QZ3G_Y#W__1/-/M(_6(#OVVF.I&MNNM=:
M 2;SVX7:.:A"66VEI?X77AV*=4Q&<Q#.[16"]!)J-_NZ*]K_2[C\_=-B0KI(
M0U*TVF$"$S*[UX;5O"'>GZ)20-V[/WI/B&.RO:,BW"$B?!J>,7%H4K22B!3
MZ99T3IDWQT?7:MA)6\WQN>O=,;,WR'$EC\?&M;W%^"1L>[4X74Y4=#6;%""&
MUHHFVD4]@E6QCE5C]HK(]8XU]\4XIF/3H^/:WD)\&JI-/]+$A1#;1;M0$W\Q
MMBJ(PAKP&&LR C/)WF7+?3&.Z0CU^*BVKQ ?G6K/ZYJ6%U"]J,JEU@ ;VI$J
M75P[46#!U7;!>S*^ZJ>*GZX '=,Y[5&1[G!Q#IE8>4EI_5M^3^5T1NUJZ?F[
MUB72OOMZOEHO3[?H#Z_<[O7Y'1(EAZ^G5T+DTB,GIE@R07@0*6@PWFT&?U>H
M'B66HFVHO1LC+S__R%,1E_?L^<EBN6Z']'[^/%V_8H<P52.%- 5"3DS@=DE\
MBKS(FK3#4-KQ7_\0.79XSJCR#H>*]MJIAV[[VFO"QV5 9QKK]?Q_3S?# [:W
M_SI,0<IHV\6_&4Q+;Z#E0*"X' 2K,&]B.D#:MSYL5)'_ "(_?H<[-G=?!O;'
M',_9^/*LPLYT],*V)O.0BF=CA6VN+7J(&K5(0A6!O<LR#X(:U<T21S-D&%D,
M1)%7[!*?=5NHZK/.H8(3[<:=JBI@94BB6M)&%!/LL,SXBF54,?4P?#APX[O1
MX#(?&[#5ZK0U*)X=BYYX*LY*X4":G%A[B7;S4BK@A;)25B)-O2L9]R/:,_;]
M1G1$1RD\7E!Q5J"<TNJJ0]XMJGCH =W#BKU6U&V(\V5UL#D>SM'FF4K()9D:
M625H$@2F: 1LD6SR(=:4V;$H_8^EWHWGZ S)I3W]NM=OZ<-9-/VF_KJ<SO/T
M0[NLZ[P>8DN,&)G\B7)SG(D-8PH(*DI2-LKHNM^%=0C.,04TW3AU(R<RM #[
M)>/V07JCUNMTX@ MN]:&[UHOE86H:@*-F95O(,O*_"DY=T@5__%.SXZ!?$>)
M]&E8>%$HB<HJ8U2!Z.JF[LOFWD<-@G0E46/1NG>+\4% QU1>'0?K#A+A$[*M
M9:R-]!$SOQ-E,[1_,\[-5H*$6E$B$CIT/VAZ"- Q!8,C8MN^(GPZMFT;#B+O
MBA&I:=_ NZ/;R505,R0GBD"L3IGNI?R#D(ZIRCH>ONTOQ$$(-]&E"M6R(QQU
M<TA<;85(KLU"\*HRYUO#]#=:@9$U5:62 $2KP$0T@#EQ\)]DIB!LC-<KPM]7
M!68?T>Y3@=EG7Q\Q$Z^D5Z&B:VTQ'!YA,)!JX>4:ZW,H,DOJ/W&M0R9>/4F6
M[1!R#".+1TO!N@:AC7E)KO4PM#J!U1:<2AAUSJD2=N;'\2G8IRG3'$..CE(8
MHGS[QSQOAT@V@+=7&HU-K,F$ A=;LTMD>\Q_R(#)9>=CN^_>'6 W'G[RGI[Y
MR DQ_.8/9%RNN84JV&"ML^!5"=OQBL&8#"&@B4)43Z7_?6>[YHZ?N&EQ&(MR
MA !VK-J<?;]]2;BBO_WI_P-02P,$%     @ BH);6M$EE8C4A0  Y/\% !4
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
M5HPB)UG5P</$9= ^ZEK&2BY.ZWN /2$_;G8=4I]K^+CW%<+-!(]B5?(9/;A
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
M.A23Z/!I7G2Q"<NCU/\=1=W#D,0;<8+WY*;6$N9/R$^\==Q:JV@[RI$V)I;
M>Z>A)"M3#$)[UKIC[6UX'@D5FHF\ARR#UZ=G83"IQNN[\F8\^O1F\ 7SL^D4
M9]/_PF'M%?\''5C%F*QSEE!"[<$M62&0(0%&XYV,F5O7NBU$)V"/A"#ME=##
MS=!OXW'^:S <GGBAG'=1@HG9U;;<"-[8##H)<D,D<[2)-2;#ZMF/1-]W$F4/
M@;@5CDO^S?L3)6N82D6 D,(3*O(U@]095/#9IF ,;4H]*?A[)(],W7N(>>/0
MOOO2XN7]9'Q&;LZW.AVN-@:OU1-G\YC(<5J^;,5SW!8PNXFK4:?L[Q[Z[,I#
M+VDN=!2&DR'"N"0F.B&(YDCN*:9L+1T^+K2NL=V.:N^@<_J,^7R([\K&9RUN
M7&STF#PW$.B=IM5;!UZ2G^:+5V@"O>JYM0O<%=NANF\WYLB-$'4?JK@OK6LV
M+NE*!D 2K%@= S I&"@K<KV))2-.,9Z#KWM^ZS:K'6 =K3-W+W08]ZN6'B)R
MFU=_F230!6)/]Z0=X!WG]K2Y:KM29T^]'(E"/I-#(;0 ;GRL[H8#-\]HMEY$
M%10/K'6]^-&HL^46]CXP9Q=U],"8"TBK/&3IN54L@?+U7&<\0F L@*<37808
M#3:_]+D&X? 7M\W5M*8C\%UEW/H:MTZ^.I_AY )3[3TZ+K._P@0O*]P=G;01
M2JU-5U'Q>A.I +GTJ:#3(70K(-S^K,>CZSZ$VSHAXUTA3Q2O@OOU?$("/[]
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
M1FZ3-414Z3DAC>BJZ9Y VVS)#(O"^=:EH]W1_;!J^U3G3>+YEL1;^88=$!W
MLKV'YNS>^KN%)GL(O^?]:+4+2U8T00.>"P<E'0-7A =ADRI,(,LI/E ZW,UX
M/0 ;=I%YSRRXZ,1*ICEF RD[0F2= 1=\ B8]<R4FE9NWIKN)XK@&REUT<XNJ
M[R#8UN;H1YR<7CLY-V0FK*RF$V*YT2(ST(5Y4"61^V8BV621Y5*OB5C'YG6[
M/_L8M1M'GF]_""WU41>TIIKZS2#$P7 P^[:LNOX=T_C3:/ OS">\,"X<,]7.
M<C40@+6KIP-/=C_WY*SEU&E^]&YUA3L@?(+,.X J#U&]^IY<"?I&^(3\I+8]
MDZQF3?LH:LM8#D'R!,XX875!SM&UI]E&/$^;5&W4U,M-TJU-(5Y]3</S/!A]
MJD,)Z9_\,7P]T4HA1JXAJ43;K>(D!J,2S"_;?&;<QM8#?.X \PD3KF^E]I
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
M1[U>]8YG7O+2V=!*_@U-^,>XIG*815I\^.G]+6LU[;.U.8M5@M:K1$ZO\RR
M-0QU<EFZO%X>_\I7_>!(2UTT;.RT<%.;09*"E6"006$UQHTI6<D;ZY"%\JBS
M[:X<^!V,%TR=5LKIJKO2$QGU!%/:.L.)MED3JLAK1'Z!XGC"8).393^93OMG
MS5$%=^RNG:7V:?<A=A?C\?67FP7R#_JJ>5#=DN=W%4:WSG :!<XUB!Z-S@;!
MD(/1Y+E,.>+K?8>SSCEKE#2![64&;X*Z77C<]FO_S>FOJ^V3:G.$S'7MAEL"
MS5]A@/'J J:HE.LN)&Y'\/L*@]LS2Y='ONU3V<<2[?;P$"X;GJQ!12/(IMYX
M10B!24@L:8X^J");'RT=V=7/7CGP['7/)KHXE>/R=<;TX[IGH^N>C6BRCW/S
M;71\,OQ-7B4?&21CJA&>'02M"EAK-&I#F]#^K:&CX>U&USW'1]L-5+O7ZYY@
ML[1%<(@^95#>" @J62A)&L6REEFT]J'/_;IG(UVO?=VSB:(Z"!I\KM3:N^$
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
M**V%[&-)/"N+S1OE+<)Q[HS91MQ+EZ0EYW6SC^L?,8SQ?_^W_P]02P,$%
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
M JH^8KV$C)-&\G9J, S#TKA4C;'LR.]4LH#55L9<])#YQNTK4!@(17*S).Q
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
M*_! _J[30RN1T5C4011Y8A> -,31C:C.[SA/)$FM]X=JKU;2;=?JQ##^O[M
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
M%K$_SZ>>L,JO'G+<^NZAMS_/[&T\#T0K64?FK;/38_[M/H[+9@".)"=:<'1
MF^[.X%!NJ<>8=64_GFM8YZO0@M;0.Z.5?!KI_Y"N;=NT N8;@A]J>IAR:J5O
MDY2TR$HC$P1<CMB.-Z3&O0JP4_%,U.-RN&_'D?SRXDWQAZ5<L69\*8P=R AN
M(GQ8+6992-4?Q^D5%N\R_33V(MAP;];M2^1LMP);;=+)G+Q-=5$/M-4WPZ6C
M#]-UWN_UJRM@\<_0]P2XLO!@:[\L_@%#GJISCJJ9^6*6H4)=B,/H9@C+I=G0
MU.PN6QOS^"3(G$Q3O]ER+2WY:G@<&RU'_*P%Y_]4G/L6P L82%-J/?[?_Q>-
M8^4IFR0Y2VIXZQMH;"B_VQX,?\:Q->O2]3W+_62(ZCV)"/.),[V/WUP'#L2:
M?WC9O)" @@L[=8QBFQBCC]6>1-6;&BW"F'GFAROG]J,/M%23UZ*1WJ1.[6RY
M,I*%DJ&2'LZ6BD_ 6E6ML:1'L Y>4:^_2XD<JX*#ZLV I_K#8FJ_=OSCF9=9
M1L UT:K*D7@+V5MGK0'QLVB#F 4\Z/3OR[M3>&Y4+Y)D2][NP4%6HC_Y+U+S
M$G\[.-#%"SVW;"B:"2!CX<"JHK5&;,5-;;;?:1)4OW68 G".,G/^[:,I5!]G
MJ-+E&?N@RD7,NF0C3*Y2SQ=T7\R]Z'KN]%!-V]AE#\4MI<RX ZO2-O2S-2GT
MT_^9Q(=?M9==]F^1_UD3\')N[1S)U5[7-2PI;V5.N\Q3/,;K)>:J?M6W"Q]D
MKFC;=K&X8&B>BKJ2(1LSDX];1T10</=;N'L&=@$IK42\-94[092S89Q_?48]
M]7JG9M1\ZUT.8;M](]SS_ZGL_UE.Y=ND2.5<#> KVR\F@_',XO)G&W?NQ(G
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
M!9[/.\[?11*J4CS;J(-KS%M;6[)/BT6U=>X[%9T6\:=VW!$RM>GV10X!E/N
M9(.#_IGFS!';%K#-T]M>O+?N>>-ER17.FIK&33-)4P7$ACYDT,IQ\IFK9>JW
MU'(>W3ZSQ:2A6;+\U&N<"<_F%46F.DZ6;M.OGUJL,*(Y:AY0!IDR'>M'6&;2
M9U/I,V2RH[2]Q3\UQP,F#]8;4P_MQ2%A:RS$KGM 7K"SZ$&+=)/N!P(18J(X
M>_JYBLM2>I3?7E"(;2Z/\L;[H[59*,HP(05HA#%@E8\^?Y%=9*X(3O>IZ$_<
M]C$\3^>;[T4I7S,]^QDYM7:VKHM1$+9\;M#HO;^>%/_E =FC"/8@+%P Z'0!
M AVA_>O=M;)8 B4\C::-DL,*;GB)*>(.T44:9 O6<G#%5Y*5%3#J*2H')-1_
M6T5GQ3<$N.L/X.%\,KZ2=(6<B&HH(]?)]0"3O(RDK_A]TU">\JZY[BE2$LLL
M_$I[@95M[O.8T%-JMU0-/I,^[E^B,L3'/L,8IHNBI*-!)[%OZQS!=;H-1W ?
MO;(?+:#;ID$/9EG>H"%W8]5Z3:O_C&\LF<:1>Y+U;@\$_9 X^^:W@.N4E]!O
M"5]^&$#SX(E,C*I#.BP4X/44LX[6-3>-W9:O;C.F2TCD*FP,NZEV_6Y:5,U-
M%XZZ:O=TX=5C!/XQ-,(1C"V68+_605T>$/MF/Y='FH-%OGL:^WC@R30VW,=T
MQ/[1E-KQWD\%P[KM'^;R).O"].@F#S4NI),5@<X^H(%;P(WJ\CT":G6A(&W4
MBC8]OX<^'?-R&T$EI[.DMT*O^]JDW8@6OFA3=?*ZN.&).ALCN]]\_N^GYE_!
M4O/81EPC[L9_([ZN3<4?@@;[\CFJ$$QZ!'1,@=Z9$*\B]=:WJ;/?K<OV,%Y,
M!NE\3?"^=5W?_UBP,J&/".)(K$3@JN/67SJ!DU "1W+=P=5_3'%\'PFT1^[D
M3+N9!LS'M8O:@/.GWH&!B=E=J-7=*S4KU##4V=09#?\0HNZ<0XFK]<%/PZ&N
M#Z)D2;!O_"!0,9V#0CB 6UOU>!NAP)*@D)/UR\62.!IO..])]23FK3[=!&K#
MNRBCOMM9_BYO3KZU1-@CRF'R'@K#B)9;'PHZ@&8I(IFF+$TV,=4;ZN]""YL+
MT-[)6693KRB,>$&WO3Y<54YVN9.Z9N/0<R#;Z(+S$>H_;GT+E^PML&S9^;C#
M$?#?*OAO$^[8&,L#='Y?C!RM-AZP>TKGO[?S0FV>]"%).Y&&Y,Q7KWY?WACM
M^I9Q^9+84D%J;=FUJ:ND9Y[++9I/169R5UL<@R,P>[&_4D8-3%]1'U9PJ?SK
M$WS  3A[=!F$U(#,OZC)>6XNZ2IV[Y!OB*P!+@R*#Z"C+:UGMZYX0:W.34VC
M5$3@"L?31AJ.$#H?JQY7VOIQJKB(HEZ<4((M91C0(Q-Q]F6>2PIW2NG]M(R:
MIY>C=PR(?)+$#GC8I%I=<AEZF'OPY$Y)$01.'_;J1J#S%HGZTIR/>PQPC?V2
M=?D7[@Q84]C<8<HI1:V;.SX[]7C:[/"_==VLN^S%RS[]NM*9Y A.[YT\;DL-
M6U3H\G]A0_Z%?2J"OWW<^.A4;7&#Z(G?/V'=<3O 6>&X[<_T.!,*)JMHICIY
M:2JP6QG3$UR!Y>U1"!V<AVS<,MKHY>9M60T5T9'AOL8!9@5:5]DW85,,!,*1
M>[@?;ZGL)T"(8W*[4N,PR[(6(G2-M_R1U=J4G/7 XF>_>,RA*1Z>O/L)1<57
MOS=]?R!6A0I&0P?S.PBQVXB&&@)3'.+MY*A#Y?16WY'BK7XJ\9Y%GUY86)YF
M_F!;2_N;YL;Z4ZEH,?U'S<+BB3ZS^J :1U2.7=SFQXQP@"5"8;_@\&#G*9&]
M5\=41QH^F_3=_#;CX>OS*4WC7<N,QZ"J@):=VF%QX0MR+AY"!HG_TCB"CLQ#
MW!I?X#(9TAE, "C/? ^QRSC[0LCR;1=KW,E81\9-4+1(9JV:IGQQ9;G<:^6_
M]\_'OUQ(K:J_H:EA.YGHA_["74"JA3F4QA&U #'I0! ZR=0DWAP=.8=&>'^'
M D],%%XDV%LR>(7U[UQ)=C#MK_\4-&I#NG[J(^\K_C\^L/#58;$7<;Z0P+/Z
M"04F/6*9XB&>?96T=P&W"7Q8PRY&BD5%S>SCJT>=9F2<(C7_R<?Z+.SZ==OU
M-UN+(_@ODDJ8DJ/6KE0RSW&ZT#(<&>P$K::5(298=-/AX#;"]DVZUP>C;)%3
M76M!Z5DK+M$W=[X,L(PK>_7/GB,Z!#_X,GZ8U#31J9]$:DA::7U"A@ANT*FM
MI^,XK6>)T=.%BJ^O_5H:-O[W+$^N0;'T;&M5[ M-<R1W6SX-#5Z/Q@\!TGA9
M3A<*=!5!<B1]+&WI?44F782TBSDJ3\M#7N<U-R0Y+?[Z%^?6S'0480YKBBH_
M.R$V"?MY+4L&8'"9BA-.\S54Q'18WKK?7/!CXR05$(#PDUJC?U/\!/TW2B.M
MW.>$$WYFC<G=3<^+<&7!X!B?@**\>,T9)X*VZ]"I=BU./R"#%PFQT*&KI%1#
M^W! J0T#)?ZM-/\6YA9O2]FB4HJ:UR>U'+_P\Y0CY'P290&CO(R20U'>W17K
M0JF<VX BNTTQ";=#A(YY;9Z:6AQ>HS;]&3@^4JE2IAK?E8XO SIGQV6Y;=D4
M_YKD?=$\0A+_H]6DN\?"'I-K0)HQ\\A7JY?X^I4/@ SG.><WP^#DSM";X_IW
M;1W6[3,0U2<2W3^K#*\TFC. %$<%D2!7MUWD/L_Y>[6W*W4/SE*TB?73@R]\
MNG59I-90(?< 5]Z#GW-%?I-9"L>?!'.TN0<2'*EA7I^9>L]@/Q6?^O[/X"&@
M9TLY/=6=>U1KYTT1;"VWF%QN!=;GSE+V&XX&IQ^&)7M,BJ\6^SGG$%0W;!86
M[?CN39(=2(S5T=6*&0E12%=UNF'N:/!4EFZXIK_;=O;4?MYU(J2AQ9*38G";
M<KSQ6KXKUKDG@BP"#70?&8BHAK1Z\^@VV*9G/<"UA)*L8:QE7>FA?5F/+$O6
M3\VLLZ0C.8)$IBK0J<N1_\8ZR2['>44S9L(#X[LX$B#[2<O8WP\7P_\VWZ^K
M&?O>6I:5;:SWTNO6RV8*DJ6@8?R7Q)+-Z;W^9:'.#ASL.7#SE;^:Q OW[%U1
MTV]V&"X<G&?)F-#R2,SS0.<W7W[H,EWUYYJY&163H<(+YF4]]U;J%TF:JM(H
M0ICC&=&%29N_3\Q+\S"UZ$(<H7*0S'!^"_[L9TD#C(M0%LAO0R_.B0"H* DH
M);0QVBPO;I_VY#FCM_,%PW]*][FK$[)[(W==T%Y <PN*5JOAS%90C:D)!3*Z
M("?J.R\[<#XM/,)J.+2Q-R.\Q_5NT5C2(]6^3R^]IQX=20Q[VO%!S?A?)<PH
M:J>F22RI:.JS92OAURQ,@Q7NIDQ#S/E7K#.U/[07Q2#C?LYY)]!DF89AV_WU
M1# YI!SDM"'C&1WF!$HBL.%T@X1.1=(>WWZP;Y/F;"$#'GD4<EC"/4C[INSR
M>2LF*;AX3]F;J\=02W-?ODT@Q^62;S=/& FMRFHWW:O5^7DOT.E3P-<:ZIIA
M <<$H&1\?H'_B *],?&^,A ID)W_ HJD0>"71DS$!CN/X:$QXJ%X_,CG_3N+
M__N, *X@A=KE6.;0 7#9&K(#"SL9*DAP(NGV0I61@^+96!N^9VTAC1+2T:)V
M/[+MU+-#Y@G0@7Z65'PGNCF\"!SHSS.5+93K$;N_C9!F':<!@B&;>VU4/;VN
MY0TOR8;MY4N_.:U>)?6T8+_CGMJ*H"=B@K"UQ0.=ITD!1$C3L:,9VF1>A#Z&
M*%MXU=8%35GDA^L9*U]=#\;43W5Y6#9]M;OJG\&OLYQ%+&RSA@7-@Q6B6#P"
M-VERJX-,:98SI TR:95:K'V^J FRPV@8 CONS,3)FAAXNQM:=7:9AT+"-S:.
MH=\3N:R^-A,7 LO:%(SLS'#E!+%05$RBJ\'"^-G^CW)RS9&ZMV[R;SZVWNF_
MY:7_#)\ (\"/*4W"9=C+,L#J=-FLLKM GX^,COA^]KC1C!-"A;A/;?$$LA1H
MF%\-H>I/5C)\QE$AE1@$ED"32S ZSM>X3 <W'"Q^W2I3%[FAP4*'M#:G8EUE
M?J,BU<P.\,G QC YQQ$MX5)J_&B+8S(5,@11<\65M")YW<0T<&NP8[QY:C[E
MQ\.SO49,+Z'IN&7)$X-&=?^59'@8_&BIV,! ZHZ]:$7<!1@C'=M5+>>B/]04
M=B,%\?L6/'T^=\L&OD[\^/?I62(U(V##^8[[PSNU_Y$H_1ER-F^@ >8I;&+,
MP<GU59PAE1GM-7'O[-=>W=YE>X5V@Y>KTM8/E0YG"'P9BA5[!_B)0::W. *+
M3$>HLK>=!VHNQ1(I?6^IQRU^,;Q02*\^ZZ433(WFI/=7LVHMQ2T^_/R7B7=G
M]?&=#D6#$?HK*53BU#;B+#O7 H4?0"E82/=7^TR?+(=R:#8)(V<WQJE-G1$W
M M6+<;(UMJK>AQ$_<T^$D7+1KP>3&I31'#'^L3_OO*P;6YH<I]#];@<PM\+K
M5#]+C#U//5&U6SB[Q+9ZS,,E<?>N%GWH^-4],#.,>XPS>V/%0Z:<*Y:/_3'G
M,7Z8M<"[6<@1=(,5KP?=@)7Y%CK&O\I+;Z:@>]!2V*-DF\"*93QOP_":G'V!
MJX#@H/(,N^%-5B;OZ<PGE,,7/HI]4I& !4P$ APS2/7C%?16AAL["W\<9S/:
M8)]6NTK>M8 7BO/Z+/MQ][#E"_) V"USV;RZ\"P_C2F;D*CD=)V )7W(].!2
M-,QY]_:GK=?\T->9:)?)MO'+_A2A?<KQ5\@@B?))6=&VB?O-&JIW:QY>'5[;
MG#OW(C]?6S!%TWGD=D?J:OHKG\^Q6,5,TP+$UB9'P 5>#9'] *#4J(B-_=6/
M-3%M2J.A19*G>_ "=//#O4"P5+8D53B</LA[2/N=XL'KRN?K$AOA05+P0SKQ
M R3P'%H:LJ'R9_PABT,C-*!'Z(UNFQ38W3%^X_M22YK#H>;$T[_],X^J1A'R
MJE;??CMD'4-H!E&<W<<KKZ$1),J\'4><92 2]O2:BA%]/E$_M!KO''-D5N0T
M;3]X="I[TLL"M?B@N@Q*HZU/\7/$Q)M'\>K?[<T62 TZ+:<?B71^[ PNJWK@
M>5 T]<BT^N.(0-VQE"=B4[6[@,[P=G$HA-$,4]C+P'0\Q22-@\"=H?L4O1N\
MK]L6&%..7C0=_K*J=+CSQ>*FE)5&L,2<D&;GNSOA>A_+1P%*&1&\B)X<X A$
M@^'=M/Y^TFK,F77T6/X9D'"_S3@H7Z'X+:[;PEFBM23!*6[#C,_[Q<\B"=(>
M%&5S-+5_;G#E7Y7'X=1-CD38=?DY,^^=+0W^G4KIAL=4[A?\A?6G9[."9*)A
M8' E41Z0Z\KA@)%T>M3<::Z6CZ5?-]'F1?42]]R\0' ;OCV=5ED9U&\P*-WT
M<?8":ZVNZ:O'CE?\9%D2Z&ZVSH>["84PC^!'@5=NO<0$O!Y42[.]7;O;HE$S
M]T6PW+ZAHN_D;SZ?%0;VG%>9B7V(.<5SP1T'6S>_)&>4#-K4BN!\0)LN(K?F
M6(Y>VN-6$-"V.;N#'AF/=L@D7Z@/3/?NR;&LZCQ&N/LDJ#Q#V58XEO\[F7NZ
M5@%%H0H1,LCB''E.!Q%TS=C'.F]$5%Z\R#H$5=_YK%)>&C+^.^K.C26M^(.O
M;X6'GU,2\';XI=V64@T_O ?XX,LN=F3;X_=M(X;3%!!L??8[$N7EK/C_U1MH
MFRLS'3EP[E-'3(WXK.4)Q3QW!#=/-X(_TLJPKEU>7DY7I]H8/TOJ$C7>-&=<
MEI1]U)^O>,FH D2R%$U@VW2#ZF;E(6(T/8?AQ7[2KH\MI37W2X\VDI/;$:"Z
M9W'&<\=;(<$\S(C.MVDKE>(\']4#_&(UAV*E8X[#HX]M(W+/RG'>BW5O(]B*
MI6[Y\'*SR1N7B;+ 2LTV8DWO2RSJ%"J<"!VL75ED"D&;G42>QG?:/O3^7D+R
MYFM/2(X:&/<T,>RB4[#_1G:49]25Q&'RIYWRSR.0Z@F6N\GA2"[AXKL-V<#O
MUS'.;>-+5K20AO*I8GV?53Y@JMOD:<N%9O]%M)Z^[S@?O-ETRT[DBZK9I$'-
MCG;>J)NA+(L1B^.X:/HF2YE=C1WHVK))-";+!:.DS2VII-V+>(N)M=LS!ZXT
M#&-N,_VC5E=K_),V@Y1WG&(^#_AB4D]H(UW#0&J1W 8+#;"X&W"JW#3B6L%@
M!W*' _AK[F3:^2$<BB[D3<IF#/<[%=!NJCA((CS=M;#"@8(G.B_MH? R)$G'
M2)3E2V(L"2E:E-KS1NHG@++TA70ZY#>1(PK#S\-]+,=MQ*N))-2?OX$GD-PC
M:YFQ0%<EN\1+B2B.O:7%^79-AM'/;?8D>HR=PRUV:A!@P[G_-3CZS7E[-FQY
M7KMK4?%D84MY++/RTL: Y/>.>5<;0?]$E\F#-GL/?$0X$U-1E'[T/PUT@R,[
MW0)^PI!" H[.[2((?#S5+KN-F)1/VD:<FTI X+/Q8V0P K42S#RT/*O<UL@N
M;#\$U7>J[,TM;8#RGV.OFOE(_IL3FN\O]_9^GU)AKC/MW=-ESIY4$G=<('00
M,TE"I&!47+L"^ZF%*%2BZ]:%UQVZ/';;Q\'Y2?:LU7<3[4M] Q_K#O%Y>-CN
M5&#!.7;\F]O*4MPC<1:<+P7G$LJ\/#S=L=.V3:\;&^[Y9<[*@&R*1,D+'F>^
M\]+7=Q#.+)&N FFS)I -G*I?_DP7ZRRX#RX-X0[158HPD4)9ZA(SV-2MWJ(]
M-ZNRSO8<^GDFSO0\_] 1-'B#W*&?1F[X0F(>Q7<3ZS"]@P28OB=9JW-TZ:CN
M&(.AE6J*W4Z,1L6;8L,[)C_=U@1LV4-9U\>@3@HYO9V7_12@+)-%6,%00&3$
MD20:DK 5,$:8_O,O3$_MWSZWU" -EVQYI[&AN4OR'GM4<AF#K#WK3X.&<%KL
MISA[F39@RD1%%?Q;M4'!;/C%_1NZM=AB)X)[-&=O9H^$S,_L":WV2U!D9+W*
MRE87%&KI6ONF//G?Z^,?U#>">+<.LYN!<&"RG"/P$U381C#2V!5M^ )DTJJ&
M5[1[2?+GR(J9-W[*SZK4?A5<%>SGY7'Q^/92^]"_)C2D+]:UC4A4T870(<P
MSD>2!%X >W'.^91C(N<8_>&6/\,P7*+AQI)V8(1.@7]Z_:GI@ O2=OG^ OO0
M'PG0\5MS_&GAI+#!>&!GQ(%G^=T*<MU^M-TZ"J=>VT=&57A/?SEG2CS8)?-%
M@"?3]#&;&^:X;9(#@$YW$J5N&U%/BFN7_HX-9 2 +H0DG%4!YU'5(EKZ+Y-^
M2\K3?G>*4]MQ<6?M@^T4Q^^\2C\0,?'P!-P&APTL/>Y!>:R7/91#_\T(@1II
M*/YK-_O#<0$49>TS;:_JVFYI#GC=N_&BT_R<Z_'.3[X7,2X>0FLGYX%Z+J_G
M@Q4\@GX=V -,SU-M5KKIJ?/4S:[% $)/W4PO]8V^>[=PI-PNQ3OCS2:YPJ_?
MSKSZT!KJ&Q)7.JD+7%ZNS01 ^W=JC)WLID9E5(]"T697FI@P=L)]6"N;=B!B
MCZYJ^I+LAJ-2^+!NC_WUS(7RNQ4'3=U^8V""4T'7F&=)#7 $R?HLJ4#&,/T3
M'6=(@MX&E[%.#86N2S&U7<:-)I\KZ/:.4R(]V$WV43X&L36#)MJ*^Q"<IX _
M><K>A?VR77H*Y]/*+K1091G5C99DQF@Y0(\"RSW),]/O"_,P]9.S,T:\_(I:
M&V7;"#^EB?(A:P3N'@T%Z8AU$^19M^C]*P-,,<[@K!'[B7D8..3&D?IF+A;S
MS'VQ1>E9F6.]?4S%K%=9_7JF]<;J>*B!:?:S/:+1' %NO\\%=C:)\AR0-H;1
M8+J[78KNV#V8:B%O1[X :F7J7LF,RA,P;XW'J)\;4+/ZP9\19WMLGV#E(0C#
M\('XF(I YUX2I5K%&.3&1LM^9(-;/RG9-(93& +&]?T2TM7NDJWWL8XRWV+4
M_BY)QI7)2S0,M.Z2W.@+H9$A5>7^=%5N,Z&UD;X/Y=W5#G0IVL'EUT'#MN-Q
M\RL%K6=>-=SS*9'D;7@E['Q@+QP!N:?YBV"<C$9=K87423TSBM3^56NF&>[2
MVZ2>I@O>4$A/N_3PGY!JE+/[?=^[?0%CJH\4- N, _+4?][S^6B)5&67PB!,
M_#9-*>\:Y&>%@JB5"3JACR-!=RA*S\=KC^ ,E9NRRF:]IW4_#/N3LB^&'7DF
M*"LYW:V>IMBWX/\]76Z. %F@.9;H>GWV70@.?J>&0DCP6[T-,M7,@J$I!;>[
M<?AV6HA[4ER[DL_N58HSVB)DMW^>-\(B,DK]3GC5EYX?.2>0M>C7S:O1H#UC
MG5W8=ICIC!_T7-GDR-)=2@<"&>_-*PN#_;)*"J:P&W?LE5XL=$B^]:XTR/7;
M<.LE0$=#&#%U[+I:TF7]23'&38C /('=/!5RCY;,4?*<BB$X,(\)72^)?I05
M$/3?_9N']]QQEI0SL_F$ C%NO< >'!P$XJ]:Z+'08,!H6A6D-](_U71_(2J3
M-F'//.L%K);,+X7\(D$&VF=&(O2G@+G^M+\RDDNOL,BS<8J/SBV:5ZS[1[TU
M9WT65M_*_;\>1"A&*FBR"H<R?BFLUYQ8;$-&I'US"[WY7K7^'T?IA8W@K>*<
MF-#Q\]Z3,],?/EVTU@E/YPG0N%D%JV-9E90O!NG]+7I6RU(6*CM>777C45L
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
M<V5C0H\763)DBZ]MZ_[S6^:1;O7*MH49#O-Y&QZ_?);@) ,UT "<,CK//P"
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
M=QMIO_K256BE*MC-JHM<25\_VB<[Y_ 99GU2XC]MMH),"^Q'M #.$Q5>/[+
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
M]32GL>].,SW_8[JK1NXKX'9H:-".QL$^K;VFN<7:XG>->X,*XY#D?.(6_\4
MEB1MT'08W!/T8$O%29H"GA'G6F /\3Y_:>-3U\R,+M@@:6?8\*ZU)$]2%3=A
MDB3K7*.9F+#6QL+<AA%JY-"HPPYI/./!85G)I6<\@!]9)$I.+LB3TA5>62J(
M.GVMS_QUPJ16V*FC6F%]RO7&>/X9XL[96+P;^",=Y%'\81Y\^SS6%5E%9?61
M(W][%.;"'","0O:%TK-]%X/AAFAN-2EK^J?U$/U(?U1$R$[2"OW6JU)/!Y%;
M>27\2:-W750(DIZM\-?(5IF VD9/>L,Q.KI#<T<A<@QK/-0\(N%:W^65)%9X
M6E75>;@Y(R>G4.J&/WF.+''K=8A][$R*8[;IQ"7- U:$O7.T!-MS'F579F(S
MAW_A=<XOO<I[=7*]DW_]*2,IQ A9T);KAMP^75Y18Y7&2/,UD[#6S"DB[V=L
M+OE[+P.Y:>T#%N>\SRSBK64Z1:UCWYC^!SYJSQ.(,?W.I9G][5^'.R J^!^%
M@Z,R_Z%L+_I'>F9"17[I<+QQ04_?XP\F$RO/GI2EE;,L.; ]87"0B +#/:_]
ML>7M?]SCD0;Y(2M01$*V4;X,Z4S_K^6+9"+M#&%]SP:1G1C2!2820O[P3H00
M[A_@6<D_7O@GNR(4>\J=N5=H63Q?GU^5FB=8'UI<-WQX"FUS8_>F7X3=P\2;
M?=L]QYXV2[.?8?B+62>&G+T2E9/@*85O2:O#2R;E9K5;X?8KVJ?7]G?7V6@4
M/<RG=3B=3P?V2,RJS,A49(D^;+OJM>AR@^%0\SV-,)WH2D  A4QKB$2?#&#'
M4U%2I<.O%]\H;#%[.$&R8*>\3U0R7VQ\B:B"_&'K$W8^J TRIPB=DK3.%)5)
M6LW=F)A17(/ZU$S?3JVR"S\?VCYGJ0.\M AR!R&)-ONVVAY34IO)O)K\S<?Q
M)\*QR?=IR"8G,T:T^+>Q*[?F1:PXL)[W&WW#.E<@A9@YI3LL-,-8CU(!SDXG
M!B^OQ.*RG*+QN-:KS"NLF^M&PN0>S:B0G4VZ./'=]4,*R,:TW.D''%B%"MGS
M'<Z3^(6W(Q A@(I!;*?C'QBY4#VU>LMPGE_Y71LCML!=CR)0:M,/HF[+D*=A
MV#["!Q]@/YHEH<EH >295P BQ:>5%$<:#=F>SL8SY.$+P@B<ZH?!Q0+<,\_
M.Q^2#6]WR;Y]"[.M2 D2:[P4L!(+9%PLF:MC6E3XGJW,(9R1(,]UFG>'Q=5.
M6* ([72&;]*M9Z;E&5U5Q7(I%P:C57U3'N9EQCW>FYKS:V@A>ZA/,OG(GJ2<
M5($WR;)V5\(-PO<G'%%.NA8CJ+U#\L+UY!"8:@00Q[R*_027TN4=8H522[56
M5HYG^%RC/<OPT2D<FHX:E>7 Q-P /^85# ZP>JE!(&M*NJ<%)CWM"-6\K],3
M0T6\4AQ>Z@9$T2(<F,0<'37/(H[5:CKC8G^M+X(BSCTX3?>?2#R1NO]6376-
MDO<9UB/BQ*(7@,_!TTY#3UD_'.-,#3;RX_F8/154\B)!0<2ZVLTE&O5(,2I
MN,?'ZR[910^&98>EHQ_!*](744P7[!"R*C'"?YX4.SR"V%L5Q5X-?:5CJ>H%
M7GRZ!G=-*J4\K/2^-AJE9/:DJZ[OA^9;S00Y%.27^;I?RO,.ZO9J^+E3K;9-
MQ53.5[V[OOMGY2.+&M\E/KB7B$@Y5L#9C>;D;' [*Z+4-!_A>3&R4%=)PZUK
M[9/O&K7LZ4XE:?HQ_"IOU%?'%+J&M>;+UEN1*OL+=5)2++1P0GEECX=^#7FD
M5CH.25@[U6V<_:<72XW360EKQ%\STC]URW^_??UI6\<?W?C_MTTU3XL*# 3P
M]G8LLV_I;/([PX$]PL!_=> >O2I2^-OV]?_R ]] )<Q5P);F8XK8#;RB"YZB
ML0NV=P=8KCYX;W;=QC /\9Z?01!+APC!<//!]V.N"W[,(T&%5'XU:R/S,!&&
M:6QA <7WUA:$P6.!O(3H3,:;I5T?M2W.5 F@1DMGE5]8A7S.>BB=&VATNNO!
MRN6BHMP')4VY8T_/9YO-G1$XCRW20R1!GJ&7>1';!Z]8$.+ I!%J[G)6;QU[
M"F59\]V\7M7T;:G1M9?]AAMK0-D>QB P#[&?,7W&<S3?W'E<"0W?&NIW<QQ%
M:V*][7EZZ_VF\Q]5/V&%L!W$"N3;2R,7 !RMZ*U'0TTWP>/N)+HQ.AG$=&2;
M&V7?-ZL*@8]^U4_W?-AA, !:"*+,;-R5Y@4"I#-F<>Z^>BX%@@(O3=CUR^B+
MIEE>&V?R]:>#EUFZI,5#]!HVG'&6G?)+ID2)JBG#LGHT=^?PXEZ' ]H?H\O/
MB;S,!642IT0Z?58)XUL8KT:JQB\%I[> @O O&Z<4J(\*E[UM)ZIKFL(.G(3/
MGW@=XF(7=)4#:TPW1J/=#6N)!A[XY[BB\L[YK&LJ,> \YG&3\5.UO,8B@V>%
MLK0XQAU GB9_!NP%3&@-9I\N%'2K5%3"W1[C!LVSM"#TM-G9,5O"]N,U7[L2
M+U<'4?TC35^AN=?<Z<MKI?Q6>U @8=?3JSR5UQZ?6[7HAE3&3N'_O_V0WS7>
M\'^_[M/XOXF6%_[0ML-_:7E8,=E,R$NM3/*"V(<NV*;/*:9OU26GFW79;YK%
MOX>T!2'?\N.F\#M6I,UH\>4-!T-NF-NNN3W_=40I-/8=-Z\VHQ,8_PG4=$@A
M!5>/A,S5;XGKM3\!SG_%)^_[WK]B&+ON\=4A_6/QBW13NZ(XTU>*4])C ?(7
M<D8NS/:.J?TLS#A[^];S;/,[":]">DX1LHA)W_$2" .6(J#MS"#%( S*!R^E
M^]L0E)DQT<P=!8[-SZ\U+H/2B8OR]/0U.*Q96('7,N4^'9WH!W,!5VUB,N )
M%Q,NT!^IE@!HIBI+$K .8S?E!J&99O8W2/H/ D;C9U83V1R8UND%%?;=JN]5
MZ9\/Y^J-R#^P\_!9L%XKG#LX:!]<Y$\=,6_J9AR!XF0%PW=1&/W1"FN-^D#W
M4F'H]K.L7G90?<;TJ;L(=-YS\6M=GB_-&6%ZVSBP@CM).W('DTV65$=6'45.
MTKYE2,51%O<.MW[D&>?)SZ[OV.G<?_$H+.S@T-:[6F=@/SQ'WJ_LS%7^%F1A
MH97>H1)\!DU]FO64N#BG72P2T7;5>ZZS=VG-9ZBAYN?5D\'$]D3(IAP!\V]F
M]"U375$W5>(0+LD_8HS?<V#C,G&0!22,/,4#!W@C,:Y,PN@L P>DTH6(&]G'
MS6GM:?7!JQ.^OC57$'-HST@*=D_G */R]> T&*QAAR/?KL2)O^OTM=U^Q8,I
M5_LR%#4=-XL'-\GWT! )A(YE0%6%E<<+@9,U 0YL\&(V-@;"*3X<&(\>D(FC
M9@#JM#5*55ZV"]V)J%QZ)^Y'L=O6T";\O4\CW\Q8$BK'@"0*88P#ZQC3[R I
MC /I[=8XUVRS2Y6#4A\/]+@S/L26JPB(Z9WZ.53M;92"K@V23[%4HXZMO'J0
M?Z!>[/*CS)<CRP<\9@0'WU0U&TX4*Y>-4'89S?KV'CX6Z4[YT2G0B#8BSW6
M2V6QVC.O D/GMY9DC]U!=>[/B06+D,F).1P8=Q/^$?ROF_!6MJD;?O0U"BZ.
M)4^%S,-]^9[-+I\'_L!6K-(G9XK1\2NU7R-%UKWONLAO?;KIXV;\>SB@0HH!
M=P=I,QIIB3&@-,80TOH*APIFZ!@0Y'' S4><B9BVD++EN1AI:B;+JW1T&5V$
M%/Y+N:1-1I>H/#21]L+/H#Q N*<2C0F[[K]V8XY9AU\[=P 9^(VGMO4GNHMH
MOEVHDVX3:.'O_MXB6T;WH)?!XT*Y5/N7.03%5%!EEWEH?^#E=^!KFJIN]\M;
M]V]*:=6\>5HN=NLQ01+G:JYQJ>K=MTQ L]>UJ&)D""').DN+[D1NL6,=I9UY
M,?MELBN[M/W1*03KG":M_AD?R]1DZZHN&2Y::67+L*7/="V*T,8Z+?NVSB>7
M/$-\4HNBW.PJ*/3.??CPVU&#A!"%[J60;<0<H/A$)5TE^O]A[[VCFHJV?>$H
M*C9$!:0)$1!!6D2JM-@  2$"0A"$J @(" @(A):MTKMTI44ITH1([X2.-)'>
MI(0J/:&$0-H7SSW?O>?<>\][]XUQ[GC?&]\;_$/9:V?-N>>:\_?;K/E;<HI.
M$I""86^='+"+#N_I0.9E1/?^!8?@EA_(TU[ZK?H52J8:S@"+"6)->\(.=WF&
MR "?FD\(,CF3/.,/(ZE)R\+S=!#SZZXX?77?<[_^2QO1_O;?L2__!C#(_B]O
MD&.>W:-PQ-(,F.;H('( L)SWH_XUYD]T?$4SH@-,!_T29X2'L=MV%I"NPL9(
MQ]9F=-"3'6#G%VS;-1([7]X#71/$TE+?P[% (\1'!S?-3/LU=8( "7,C2T+T
M2G6--C9W>3,#N>!DJ36KR>]&W)>>I^W.R&T >%T A(3,!JUC9M!,E#OXH2]%
M&5-JGT:\'"AFN _MV8\[D^/P#4I"3_#./]3M6VF-^+2GZYB.-;%MTY&*DOAU
M;_$)^YK'77Z^U;.4FE'AWO7?6]OFXN1[X\2:LKUBQ_;EA#_G>/*1S OL!I Z
M1'L\9PA-PEY?OCVJR=0RC M<D>HI>BY]9W]0<3$7:&*8=O0":7^;M#JK$%1_
MYH6K[[I(T_L(0Y/G&S'F6N2<B;[9G67$W1?\?']D:64_O&8]]<+8RR&B>KVB
M>&#=@.L9?VCPX9R#DU6()F!BS)'I?@DS%W8IWVY@_TJ\\)]CE1$]@S0*'03?
M5FE^/,![%;*_I['S=#O&\4_75PATX3<2:$:01++7>F;XGB/;6]0X:PC8$*[
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
M0;^N[^%(R>MEH]W""UW0R=]=;'+$/'(<[2%.RF9^P4ADF._$03;'(GI3;B[
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
MHD2_UJ+WU\(.RC:-$0JGP,3W Z1!P,;,OA7LI0MM?0"9+ZR2!9H."*U!E"#
M!LRI&55'15^$(Q*&N3'WT^N[J(A>!G(_)5^PK/AT'GOR&N 3Q4K6@:#;WP51
M:\3RMU,29QAQ(B?B[X"=5YYAY5Y&8<?Y>:.=Z2"?A%Q)P-[I#>=Y3S;D[PFM
M*>4Z^<7K4#9^J.E.:.3*CWXB5&QK^$8BN?C3TX,^*KHM#AL4E0$AX.:GIT_B
M$7X[K%_G94C?!A"X/.Q5P\1%ER2@??.=5]I13*OJ:;:?L)Q,!B8'"Y;OT$&\
M2!GC=B(\K+0F98>L2G%"=^25?\;7X-(*T.NP("^^-J^/.Q],:/DF7D%K0W@A
MP]YQ%)=M6!K6)KR5 >G/:2KP&9 5[=!*C,I.',?FF 79#']%/4A<9:HT-G[0
M>>O(\W-312A!B@H>W8HXAB"=:CLPG5RN#K]R(T/E>EK>"A P..,W^O:Q-ZH#
M?.2S<*D#[X,!DY3%9M,JQ.)B+(T[?7@@]=2<9M17YSY!PKGG%*/W2]M?[6=)
M7\I.Z+<NQ.7=ULH5'5G45>6QR^+QT'W]',;T?L0O:MC*)L,@RPF;X'IC^BWB
M+.41/K\MGRQ)<1H<GR6*AI%$6DI>54_&[(2$,'!0</L1MTL>./1$?DN](.I[
MO2 I)'O"Q![!5^:-62-G50]D8HNTA,M346LA8M>5P&Z"5=/^V'-86PP["6M*
M@L^"@TW54F?K#FW+1^<OBQEO#,Y9#5YOX>P)GW^^?E2+^^)(CY6/5@I^Z)Y5
M523"?""NZH5.4OA\/YSHBIIXI"[R?;K.0/SA K?V8T6?$F;_F$^$G7''GXM&
MAN.4@FJ?"G.PW/CRZXD#M=!M*)18R^!1PR9(9GW]@8Z$#4ZH^;0D&/\-L'6
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
MR)$JNG1Q,=66Y-"JY)3K MM#+2!;;UAX^]6+I=N5<C%[/D?D?<L\&+&^PKX
M%?061KP/D&2DTOFG(WTM[5>7!=YOV)7?T%GI1A2@ #*_U[[M^\S?HG?U.R?<
M"T2F5DD27M&4._P&U^%$40\WN.4\_\?JUL%H ="35WN&:B]()?![HX!F.&CX
M38FJ2?03\#WPVP4(JZ&3MU=1/3,F^4*^Z/X7$G(Z*R^:TC>6R'0HHZ#6Q2V7
MS$UY.J F?2>'S0GV6U_PT@U5V<\@7+G&?5'3&TG*9T$<X0?6B%C,\P5RY509
MB?)4"'VS:@HN9<Q("-B1\SZN'29&EG]JH6)3X%)2,C^J7<DV7GNO"7?$0Q_I
M\I+A<F#;/^#:Z?7^I8PGE 0>H.8"I1SC+C>=+MBQX*\8H2N/ZGM+3%DKR?A,
MJY1$YCEP2#1 1_,:E5B0"21/P-UTR2%;VB9:GGP.V1WH=< UFZQA91U"NT3G
MZ\W'%:/WT^%#/J=X"+*UD@3?F*/:1\Z_8INJ07 '\()>UZK@%5VE;]J'5BK,
M\X"=SA7D/EQ]]TKTY>.A-TY#!" F8^Z<#B].3@DO?M!;6<KYE(DOT-'E1WN^
M_>&O<.I^(9+.J39+J]+BWS"(^OG#_'-@HQ <T+VBQV::L!#-QZZ;;G2- FU1
M6/'1*;@JG,##R W09D&.%46@14G;2E.8RWW)<X_6)^^C8,2Z\Q$;N"'S#YC-
M+\T'33OT#9#R-D(W*_-3UE2!BF-Z##R7KJB;G#L+(J52U"AJ!W*D@=W%:ZA-
MXGSD1BV#]D#1=A<8ARL\@C#=Y;5PFG( %ZF/.SM 8>"NW:SZNOU<Z?>7D5Y6
M=;SUT!!E4VX#XUO*NB[+^OX_T_QY?4TB.IC"NJ6:GX_$8ASK;X&?G2FA[[GG
MO0R_5LF7[!IUGBP_&;$G^!2=G5>1Q[1?Z\QCHSOYS^?.S_[8!%%\SJ5_H4W?
MK1UHF@%<@[ 3YJ-4&J$[LQH14WNV#=B_F!$DX5N>0NN[>G:/.L?AWO>PEYKW
M[5_:'U9JZ.%X:AI5<T%AH#K>?$A75D)0UE G0T1+-%$J,MO D;DQEMU7,/#C
M/A+DBNVR%V8<0NW3OU]WE6Y1O?*UIV5\)UW/QKMJY^U5@W!QBP\?%_=?&"<7
MC;,13"-KE8@Y@!,VZ/PEND%6X]SW:JG[Z<?>"TQR[!BV8SLU*C''EGJJZ!)5
MGVS:!!>D<]B1V1I-WUKHE;<\UVE)[,?@."/I<MG!L,=W#R"B8^U1U:B7=BIQ
M]<?WD1/R\PS'C/3LQ+W?M0:<=2KR-5"Y_R*B.(<TA*\O1VQE3#Y8C_U&3U;5
M/?6F_M7Z;H2[NX]@Q->=S[F-?7:BM4H4N9_@]Y??8T&<4>R:53W(,J<;]8!B
MP3OIE(,A37<2\@:B1C9C@9<%JALY-0-QUM$93P?A#MQ!#Q/1?:0:'4L6I*<.
ME_!S!,X,01.C<VB?7; 6JAD (=R1F&+/L(UG$>O5TLU%C:G'GB8I6M:'!#+B
MY3=7OZP[S8]-BCO>>2<^D6Y"*WR I9\337#I#B7[M2?[PA;-J<\K O?8J?
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
M-JFP\D_I2%>(]B'>27RBIZFFKTX&RS*]O'TDE\0J;S7,=3Y8O'BD:ODBU#-
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
MVWP;E+9^ZI?#W["_W ,EO:#:,D-N 'AC+]H%! N"%0!6>C-^/WRU#_C++49
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
M_!R'B"8CP/:U94':0)8?=@S=@5LWJ)<$*? ]@#H4&*T)"0"1V_[+C#C@6T:
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
M%8EQE^C3^IO<ZP,D&[P*>A@K86Q"&MS'*=1<13%Q5'<N.+/C>?IK>):!A<6
M-HD=CEW;E:.;@KZL8J0,JO0MU.U$W]^#<+N> 22NC*.-OB!O#FIJ'/-\\R9K
MQO8')9&KIWNL[YLG6]%M ]*&!IQUEROJ!!A2RX)[E?8+5'5GX%AF"$53I)LI
M?4'! WLA":<Q\LM/:/14\I:%=V;')3.C] ?#G*LA_^PUJL7#A][/72Z\O.64
MZ38STSTZ>\U.[FR2J'?^$Z $8J,2N=_6Q4,7,(A&*R+O+G8L"!E#*Q!$B_F%
M)G_72:S,1..,L\Y6LH/W[>,<7L%FNFR9 &*1T)%!5.C,1FZ1K'KX!'K^2$L5
M]1;_&4H(.;2Y<>$37[/SI'._E=JL<'GJ3BT/K8"5HZGH3FQ=96+C%B=S'-L$
MCVX7JOH^PEVM6W3/U7JS/+;.7CO1>U2^(S(S\O355 #Q=0\"ZG6=?ST"(^7]
M6"&ZUYLC_*EA/<$S9PYU]DG!<QS87T/8X X"H$K&.J;J&G*Y&RJ./X"\TB=%
MZ#9QW/S1\V<G%04+B @)9U^2:] YEWIYGOC%(DCTUNE7/6V'IZ<C38(Z/ P
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
M9I_"T=& YP[W+]\+-S[WE0?IM(&I$ 017;E,:3M.-Q#]T>2(1ER!OXU?]'1
M]&W!Q$BBPO3V>J]VK_:U(+H.9IVEJ2PG@+^=(EPS4*:>&?0$'0$PMNCB]TB5
M4>@3F+\]'8%56PEH*.#;[?)+$]H+ ZHWFMJ@PG/3O<.*5-?O&DF*CCM:Q]-M
M%.2NN?U.?)LLB2##9S)H?P\=+$+Z,@_.[(HC>?H6 &>C(1'D0/==Y Y3$ XU
M>.^^;[!=]OH(*:)>XYGIA3T(\::ZQ!9A(F#V:3:\&2T%$.+;)4MG0-\.IDS=
MZ/T9"W5$Y6IS$H=@=$^B]?#^:UEV["^5\U\BSW2Z3KZK1%8ZL^19V,L59A#M
M8MD];^GLZ?!7XG;*EOO+YDL.$"U)Q^^9"0"#\0T5R""[4;H%KLCI4G-=LCKC
M$K'ZP+:WF6R0IJGSSFO-)N0U4O _?9#T[^O?U_^55_!"H\ &.PD^/?8>MV@G
M=7[;./WF6./:7>.U_KJBE.+($!]CU5^*[,!..JLT5<(:*Y-";(X9*T0\1]X=
MNK,=4*,+;DIK!6P9-B]NBEF]QGU^,] C*T)*7A-(?UKI4K5]Y=QEF_6YV9NX
MD5/*.^?Z$@KN\+L]'CS=$.C^K);YH!S_X^>M9%"%1*"+G: X)E6?J:3?'MD(
MJ3EFQ6/"B*OO".-2V=I_S4H..M>)I;4YS<Z+4>T2Z$'D 2T)I-/5Y)V+XYJ3
M$48O+CJ>O=%!,TDTCN8Z*?^.GY_*'O_F6^I2[E44 )8J#9RLG)SRQYULQI6%
M&7S\47T@2'S%UJ'U@1XC_-KPLV3U#;NKJL^R;!22]7.=#KYB 4@D9-./S0\7
MC_$9FBFCL<1@]"OD;N^#/<BZ.26-G;SS'L>!S H2F*%?FJ ;ASQTZVU-/7)^
MX[E;>]T,T47Y5T_W@)%M#C$Q+'8#?>0?Q[ F,C]C&U4ZACB1,=UX 3 .(/2B
M#0,.]\QKI'3I^!?,)T,OMD=XY9Y<SIKW6VJUEMC@>OW8R%.;4" ->>CYCVE"
M_6T?;&*4[$'\<=-&3.XV*I26R\A!RZT4RU*A,8T?<*8CU4BO6Q<4@^[Q*IZ6
M=4@_"LE\HIOYJ1)R>UEA!3J]U6.XE8YF0T)[\4?QNXZ5U4C8>?QX(*K"SC \
MP#/+BABIMO3DJ2K$-W(_)/0?3,T)BYY "S!*40]W39"5+,5<G]&S 7L/%]QJ
M!(K%J>BJ9U8O9E9;]IV]N14D7V_SF#_F[NO+Y.;FN<H:P"(AN1&W?U4*GMYN
MSE]3,^,?2D48UC0]:4FGK7K::_0+*IZM)3]1OCA\)SL9,OXL>=E4B^X*1@"'
MR?!$O![*F:HA!8M''2V[=JMU\^6]HMS)UY9>F< ISZ:+HON<21";?9&&ANJ=
MIES,D7FE-D9^D\ ,EE8R40H8Q&JU'Y]7;@1ZOG()Q#>*QM5Z%ORY)&435+Q/
M,5\PD:)TXVQHVO/"/IBG'=&(ML2:FA*4B1VQC;R<_!,;Q8)#O:K^OJXBG<7.
MI"JP$%Z7[)AXRR#+3K6Y/MDQ+364VJ6P893:+:;!1IL0V^Z+-55F8;89BF_W
MOA^\P:EW;6@_ B. .@/TP<=1,*I$USRT^./W@%N3:^>=:X(T%=_DRR-)Q=_,
M/!\I]5).6WS-P;$S'L-N#X%JG!MN_^C:K(!YVD+389S&)RI0^R<:VR(T?8)B
M6M-+[U1;H+/[Q7])_>3AL7P4V1W([Q99<C,29KV"&PK*P !7L40698VAKG6@
MA?\B, H&*#<!$13^YM9C*=0%<ES.9CY_RHOC2D<F[@\,I)1Q>?,RO9PTVA0R
M'VM;6OS* -4(W5K@T9;W"]-K[HS2OWW/8R@3JLE4W,]%S$LD>P]:H+VM;3Q
MP7W,QO=.P$/^50?S.VR)^9 C+-(=+%#MATO%> V!1PGQ3"/6D"C>Q\SL="](
M_10?W](]M =I]AFF*ZBG:*(:@_%I_ 6!\XB4^-8;0;RGK__(+_6F6 PY &6+
MV(W"70-FAZDR T<@/=^9YRWLEI4$9+:20Q8.H/2!K[2J"JN 6SN:WLM#X<''
M?(F%/"^LN[+8O.':D:;ES_"*C,)V?]8@6C!>8;RP!YDS,'Z8?U#L9&M+.EV+
M,\G8"&A=?'_%W<^1MB/$?7VL<KSLG5O#W1<#TBUJ^HH=U$"'4*PYJ$3UI8W_
M;4?GH -6&Q(5_H8F&3V5PS,.4RBVB, Z_]8*HFZ*?OIHT:BK],MD]3B?[:]<
MVQH?) ^QK[Y2_PSSPA(SR&$;I;O&2%]:-F@2$DS42KI=8.[_4"(OI'*V=T-L
ML*C3:[V8.\NZ_-HCJ1/1EMP_'_S+AY;\WW8-4"M3=!?V@:Z[/7]ZWHTW-PM*
M^J1_G'N>DR=WPS[<<\C<PVD/PC<#1##C,%)[$++2':;8AJA36OZ->Q]_7>FX
M>>.<_L2Y/*.@=XQRS4I;V)7<=\;7OA:I):M_-MB#S&12]B# '(&3L.)$Q3&%
MG:!D*[I!4,?6'S$Z@J5?<_I IT9[CS!:F,0>9+@3RQ0A,*_=6#\!^\V _GW*
MU +3(03!,X3H=\$!F=Y,V=(#F>7^=3-?7&_IUW D;QKW2_?.OKQYU;?UV52B
MT\0"<'4H^L_G)*K:T*(/UF?;_\%$=6C+#[4LN;:DT!>>7XQOA/YY,D/$V^-8
M$D<8R&\62+\S_,E[T'X0CW YIT7R=Y^^.ZT4AG#] \U8'J?J-CSXV-:.B]@(
M&9UWW(/(X5B9@84W%<<!;61\%;#;IV^XL2Y>\.C-Z.><"IO0(S97M\XT;/*M
M.+./MSE]T/NCQ0KD45"KFJX-'KU#61">-FG:2MX<_:ZJ>%E24^A<I[-L7(OU
M(B//]0^<(]CEFU;Z$8WFRH:EV-FOBT-BXM79&;I!X7>G[VDZ_*I;Z+Q?%W+"
M:\74324,415>5=N\MCR\BB&WH04PP[A%.%VQ%M:9 08NQ"S\5 >G]B#<ZAD
MSN\9H9ZE9-\0F/%_MP1A@=CVXB_HC?P]R- *J\A &6^7/'@8KTT/(;=Z]$T%
M1^@PRIM:W++0&:6M^,IXI=LBN:&'[/NN7"602@'D_#(- BX% 9\NHFQ4.K9$
MM!)Z:E%C#^Y791[X=*_MTTP&RJGNLD[544=(]''S+8_/;F=.E-I4!_A-Y/R\
MDR!OV_1V^>&#N0<R5X\DQKI6Z:E\K?G3\*./R>?2#M0,T05WR!JFTEDB]X)>
M(---;ENE#80PVE#O36$I_7Y<>Q"O&G3\A:#]'[DVY6Q$#=\X73+SEGNY_$9.
M,$((SH'28-7<Z^A)&' 1F^9QG(JA"P]0AB+[.O<@B8:+:ZY[D/=#R;E3CU:)
MIN4D[L#[A;MB6;;7R?:HO.BS!Y-/$0M-LP$!UH>)]R@&2;J$0\Q)M"J0DU.<
M=+^E ![)E&V:G;1[\+3O7L3#^W7]$4O08E5'+@4;2"9]V3K5(^GMMA5=9)+U
M&S# "9JRT,39@R$2NE8I<Q(=4*E?T 13"'"QX40SML3?];X0>SC?F^MU\W.V
MZOU*GWD'ZNQE[/=-#>'WL1S(88X0@ NX:0+S(!L@X49-?[GHP\C1>Z<,BRF6
MI[H/+,R[.8/Q/C'G&]L*+KNN!LB0@KV4BL*>GU938V20X*!*T,;A77$TD2"*
M\1_Z8M1CRC6.@E+Q3!-/"F?G5J)$7JZ0\]K'S_"K8UL!<F_5ER6]_*\C@S\A
M'T&B=!N#0(6M+@$IYB!4EBG$'"U6DY6G.FUH5PU6H2Y2+=.\:=8;M?M*QDBO
MDRT?E8OO.YEJBC RJC)B,)+9MA/H8BDT7E#]&0MY\/.JX.!+NQ??"2(;:-E5
M*5H+]>)#1]])E'G$';U"#YZ!HIE:39\?7OLF^J.5CBX]"_?/N  V4*LHF'3\
M270_%+##'$!BK"8:H<(H7FROZ5'@V[M%HYH#4]WQHY\_\[A)!@9H'JO(XM"Z
M<T>I):\><TS[R)?J+"^PD,D-9X'//3#N;\I15>C"BQ3X1@" < *>>D";AU%*
MB_' Y//6)5I^D+'R/,_PM8[ RZHYJ&Z7Z4F]TV>TW\@L;$2P;@UAE*!-4<*@
MV*) /*QI,O]OW[81+:S>%L.!NCC2KJY46X1A:TGFKCE6(TLAM[\5%YN=*;_2
MZG#\<<XCB-VN,J;C) &A%45H,4@W]GY83M<#IM;'J!(=6*\I/.<*'C:A]T;C
MUX1ZRNZAP/MMS@&7SSJZ**2^,!JXD?Q\*(-N 1 N,^)9R3:OQPH(0S"&\C,
MJ*+5$D:;H)QTLRFZ[9V0&J0RNU*7;:F5;MS<,5^$;WRGC<QI(XWW@VK&OC_/
MT)P811A2V1_S-G!H]SYZ!+V/.M0MHW7FS6M (-[XR#.[YTC$N8)+^("-KOK"
ME*I\?<4(FER\@HYEV= ]CQ#J&I-;F\I#8]'<Z$ D@88 %_X;>V\>#77XQX^.
M5+88.Q%3=B$I2[:9-B%))7M,LL7$),G(F*EDWT(H8BI)$<HV91N[2I$]H\PB
M+1@^4QJ?S.)^?'_W]SOWGM\]]_[N.?><>^^Y]X_/.3C'Y_,\[^>]O%[/\WZ_
MGQKPR!EP:!:N@)";P;LVEB[)DR='SH>;'3#97@2O]S&\EN.C&>ZI(?/O7K"I
MD*M HA/ =-%$*/04HMQ5=(+59"H> ;_1:K*Y70VIS":4!79;O-1*OSQ\4G+^
M;=UQM8AM-S,R?A@G[:"Q^+6$$:0X/Y,2-)0I$.$_:*1DHB5XV@'^1'8_(_A&
MG\_7J)-Y1V1\OJ@2"%\5&I8B5*82GF3E*)UZ%I@]@@HE?2[DK/&K4?2[U/Y%
M!78>D]9=M:P.IMLW#C<.I496SQ^*P6Y[>1RK\L&.U/!N3B%:5G35Y,YYA-XU
M(ZZM@*8N":QV9'HP/++;U7I?X(V!MIF;LR1X6(S'K!,[O&SZ<T^29:Z<]MV;
MBSWOO^NWUEV[X!:L)9P#R<F2Y\^_2;Q8C$I%J*/H))I,A$^W8%?["!2Z""KS
M>YTPD?1B\'R1.5GQBJ6/@S;,JA^^9-/SH._CGRV_AT"KJK[K$]F0XKT=(2A[
M^@UL);%U9W636DV8(JGO\R[\_GCMO<.W39S(A(71MG@YKBJA\WI%IPMU=-:"
M-<Q6[.^VLLA [M?)@9RF:Z><D_G]I]W^$A5%D_NZ(U;)KN\T';7Z1 \*G=6W
M_OH'12>C7BZG4>@/T<!)] X\' Q6$LC%HQ9G-(#M(1(M[B_ONLCO)(N/[BR
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
M@D'"WLGP]ETXI=GDK%8%(&W2DZU;$O?8VZ<[2,LJT*-VU[06(;[GM-/W</O
M\_.5HFL^3%V>W !G&,CF*1CTH(%3\"DE3AJ@F/^$YP @20R*^D^$=*M1['/'
MBNK[IQ4F'AC5[-PV?1:QQU'&PC21O.3[ +TX#GV^@/^:$@R_36IPZ5K>)*#.
MJ.W#GP+?Q,\NPQ:N@,X%G&ZWYK:7KS%M=K.!66>>GT\Q8C&SS$.##7M]-5.$
M(<'="B>,H0$7"O4(IQ6 W\+; B%^_/O$B]G)3<UIN!9Z8:KINQ5(/QUE?:T\
MG^8[&JB7FSHW77USGS!V04ZV?/L3M62>G )!G=AYWJC=DC"Q#FN,20Y@1Z?A
M_2=L%("%+NJ+I0F"W*>&G]4]QACI\T9_Q8I"BGQZ>OZ95#8_WIU]CNVQN(O=
MPGG*KQ:($L9(C:7)P'3W6G9'53&79;7*6"J+BXME6K>D8[4#<I:JPP=)P1E^
M 1'J/UO"U2_<Z.6MTHD\.3AGCG^#$I:=ZK=[HWZ(%PM>I(@0C,'':-F%=F&P
MY-&\W  CW(_X=U4ELJ[ Y'+F#9OGZKM>:69?-DD5%1DD 8ZUR4B#$10]$QH^
M9+I#FPB3+D#5J5'*1=(.3WMV=@_YJ>/5%'^5Z\[QMMT.&=JXW(,A,VI^+B8G
MZ;N'LO^2-N,E^!24/UJ!T$<4Q_O27:3 [I["&26V;@;6,"M'I*?-=@6\YQ+M
M;]BW]"WYJ]47].%<Q7Q?E4.-_3$;YSZ;H&#NC!6(=7./$+I0\A3,T+:-&L]L
M9OYJUE5G%WL@O\N<],R67SYB-/:4X7Y12_%T<N).5[FW'^J.*[BW9&=1 &<$
MN!O!0C&)4S]FR;VT:6&&=D4/XA;!3.5YW3 2X5<BY>G]Q<ZLV^!+>GK54SVI
M#L[++1<>G:WAP*9 ?::SG$#<]S]-VYX05/ $LA6M.WOJ]_(1@'*[7>WK2=I4
M85'F>,.DTEHU_Z6UL<Y,^N9-I][)'EM,4S\6]FT=1L\BR*<S['D*6,X**,;(
MEEZ(PCEU%A5V+Q!%?C8WO8F*DTH-C:R8+\P.#=.-V=M1-Z3SN5"\#+9-_"=!
M%YK_'@B+9-^"K,"9R%G9H#.$48'(< 12[Y=5?&&?RU:>)_#WXTQQU;FIGEWI
MKJE7.:FWN4)8(V]IM3EKSOO3L410L^DF%(ZV06JXT7/,2K<'KF:1VO@ZVC@I
MV6T255_6X/-\VHYRS:1SNX;RS?!7CT*"[$Z-.'26W#!'T><_VV!1/)G]S(O
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
MJ@(]3HU57[)Q*S<O5\C_6TC5*!T,3,-<R]_2L^VQ7:#AC;W"UV B8W<]NHF
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
MP^+ U^<W-<2Z">^<>R;<!4E@QD4:M&806=NY)S>N'J%<1&U><"<U?/'FE6J
MO;.SS*AH1.:%@L.R:X.>_N0XY3NT)SF]Y.OIGQBK09HH>BFQP265$H":FA2(
M.[)?_>43>^OP&N#"[':;_8AT_*&8RB]6GE-Z]4T%W[_;%QW=HG'LVI7I0UIY
M'^,]H 7D0%)WHPGZ2,H" \+4.DP9:4;LF@!9[.L'9S391ZD.PRL+/E>[[2J\
M#V9:'X+IBRL%YZ1-]R:JBEY"?XX2B*6R/>ACI(8?D"L/*W'M5#<"0EA&LR51
M/<T3]Q\.Q.XHD'A>=@19>O3535."$TMN:^;-$XO6@H/PO>!IK@Q$[=YL$ A<
M#.<^6RDK>DJ PG4S# E6=>!T>(V+5%L%+BEN/U&V,TJNZE#HMA<O)0YP#NXZ
M?%/H7]6WVFEAY@<$<(8&:I 7/;@1A&$_^:S5?FHM2XA!VS:_]JS TYUYX*_S
MX;XES]G,@@,?W]4Y^N:<3?IW-O&4R%=:?0Q/;D$@KLK5([PKHO#D*AC]_>NP
M9.I0]TW,LU"_K6 A4R)NF(F6#%4*W_4;X9*%J@^3Z]"Y8V=,/7_H]E<9M]\+
M/IS.C?8GOU R1'HQ&@)C_L932OT%?A)O0$NFKP@:D*I@6INWD$M7G7-HT3_3
M,2;WGQ8Y;A=9ZW][;@=,RH5#'C>#;Q9,HX10] )$_8\;#4G L7J&L2S8WZ,N
M,XF/(S[Q!F]/.ZIT!AA]<Y\LE.VH-1O_4-![S7FNKP;?>)&VGX%=;.->)'8>
MV"A)ST U9=TLY]D"E,45@LR\55\58-V-EC'S]35J/>0?L2H17]$?64[MOECW
M1,=2,^,9TC_\A=NF:!J9S),MX]SGU^&5@-I96M(Z#.-LW(F"7%*7I/O"&:"V
M!R$%AM*'#S:+ZXY*5KTS??JI4B,Y_T>P>L1*X/TR]%'^74H@;1K3L\\7'!*(
MW^<>Q%DP%9]>5:U6.@;$W+"QUDY*"-HR(KJ\IWS_!9^6YV7J#L&B=_I&=QLO
M?_DD,K@.J\]>- G8V$>!I.D(^LRNPS($9F'>(?V4-&]3/_T&\$>(ULB\G](8
M]<^04[R-O<VQD9$MAS <3S]3:DW_OOV6'Z%_K,=;LZLG62602L^"/DQB1G/Y
M8&NIZ40#*Z#?V[G!O+"0+/;$6[OWF\/15*Q6N6^2<&RPR]VY0]7&4RX",<A]
M;?'BWU8ZQ=_HZ6\,ZI$2%E$A/IG!\PL'\WI*M\6MPQ1!]PGFL0(?S";:SQ?<
MDI2""V^U O1N* 8B7VT<^Y@+K'AG^8\IP8B4=1BLU9[^5;>+5&_&(UL%YS Q
MW%^UT7,%$Q*N\GE:SM\4TN2XHS_VMRS[=[K#V+5)J"T\8ZX89/M=[>I\$C$$
M+8VK.@E8]*[#IGZ<F; )8+3Y]!455"GTU6((##,9[94_Q_>([W35X?$&K[>$
M;'1W(1+Z2H7YSX@1M.E:.IPEQ+9FAJ3RA!G+J45&C:1$K$ 7H_S:\5)-H-WK
M5I^<.)O+2T%9BJ3WV[_\7,PQ);KBG?A)E# LA"8[O7@B&T6&(XTTV/1//S$P
M+I:Q%<A8RUSPI1V*-JQ[%\W)":_3=<\Q[YU[J;%/(O.? ^4"_',4IXY_%_(
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
M>S<=J08&=\J>:C*_]7/WY<7M0SYZSN%1\LF!!0'WY!5VW7Z)CNREH9:0,][
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
M(7I*SZ?U:J)>+42?6#L_6;N\.E!^IX#;2#[0):-I<>_^,=<HG^%_*U2V#9K
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
MK%W9W^CW?KD7S>C;7VL+<57)5W(E\Z*^K=])-39=?E4?PT8Q]+Q[G]9R(?-
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
MM;\B9?*K]1RR$)&0Q4Q&69!SH[Z%(*H3K^XAT<Y@!>4YP!"\;-5/@@MLA5M
M DOLAHIX3>*W,:WY$L.AXN\ECH-?MK6\FVBU/M'JL/_@Y_6RX,^#DE&$AY2D
M.NI48*49)$4L\2D2) QXD"4!]Q-8M6,8 Y#%8%4%N0^PU-&\=ZM"NS6AUCH(
M4%,;?BJ0H)9]B\XV,?2XB:GW>\O--%>H=D X.PN B,]\0K !YOC<8#6*9<1*
M36NI>YNJ65_^GTU95$(=6=2"ZQOAY8&?D9SJ,#N"<!+'B. L0'&4D" 5ZJ\I
M*,[U KVI8TDT=6 0R 6 S'2'0[%ARJ(AW#3E;$A[0]H.N^L!Y705*G&!VKQQ
M#V:B'P4Q&+XV6[4,9=%(76QHD5)?JI-&@@*!J8XI54L_#D(=XA[X/&6!I""'
MPA6\3*P6?E,VAA1-.O(,)2ZV )NICIE@@UX\7%.BHN?O16M2'(+T<C4GMIS\
MZ#4E#B%S4#/B:$AK/5?J](,WLOWO^]4ITVG;P'V!>4HBJ>P8+DB",/9SI=MH
MB&A I +3CRD&-HP!<C#Y&>J-S&59*JU6MN8D6*V!\#1695-A!%9?#0/>3STK
M/[=QQ*<.4S?>EB.G"LL&"G=*"D1];L5D \T)960UC)T"ZIKH;#7;V^^ZGH)\
M)5<R+^I%2'D8AGZ&DCQ0^B9( \2"S$=YE LB8R("SB&5Q<;)@<PEVV*SW6V6
M]UBNGXH*[**Y )B90G$' ]!IV\F^,VN\CK3W4T?<0;0C3$I'JN$"L5DU@9G@
MAPO?\"UX4*2^T%4G!.T&?K.6U<=U_47^<U.4LJ\Z &Z%;C[B#+$1'2.>4)QX
MJW6M+(>&EVT="_-(2@!2XPM].I"@/M<=/IJ))@7IRP$^$S0ZA\MN%9D)(#-;
MN"9<]&$,I\7;EAL_K>[U_^O K">Z5/2JVY7X>K\N:UU?=A>Y52VX[PME!_B(
MI4(B3$2",MWE#H=YG <2<R$X[-!A3GSR\T8;9*0#JSRYX^:F<3U6FB&DHY25
ME;UE"6@OF./,,DDDS7,4A0PC'$4849Q1=;B3C.B<\2R'&5N3H&QK>$T&FZ')
M-0D80/.K^=;T_WIO#[^UAA.D6?'>&WQK<&,,++\KP\R<\+Q&&AB0(X,-/H+E
M99>.X6$Z5V98[VY0$OS5\^Z183>2YG_^IAU5J[LOQ=U]K2."=&\I>B<7)(WS
M1 0ABG&HT_I$C&B82<22//*3.),!!O4MG83+B>W'-B?EJ:7ME0UQ':/740=>
MN4TR3887=2\-/O!Z;]"A:;^&XZ#./7L>Z^343EW'N=>R?N-]OCQW\,O!*;%U
M=:4X"8_S7D1."?/1]>6DQ*Y(9-CP>E.JL=5.\D4N=0T:79KHXT9?JG[*/Z^K
M)JRH>KLLNAX0BGRQ%AT3BX!':9B0!#&J<Q[\E"%")4?<SV*:2R88IN"<A^MX
MFL$%L.6P,:7*EL>F-MB-MVK8U!4;'GM&/;GE]$9K>\5KK_0MLBNNG#$S_3[S
M/,"]#/M3T+'75"Z[\3YNIV#+H_=V, 4MF[WN=ISFX08TEQDA5W(T?_*(&PA/
MYIDX&MK2!S)4_9J!NFA;5+TI*KY<ZX95MZQJ[EX6/,9QEB892J*DZ2+&4):S
M"$4LY5F243_)C,+:+6A/KD![TE[G:ZZ\WWO:P*JI$$0-S^W3X 15<%80P0_I
M<&%=G=(!E.<]IL,A.3JG6PQA67BY"U[X1K_W%[2%K+9?O!\G+*<Q5?!+B90^
M43HDR6,D,D:H[^=<8E!DVCBYB=7&-E"CIM^]Y8[\7X!UEL<A,U,2[H" Z84M
M!OHF=4#YQOMKJ9,!I] 19K*ZJK(\3FS>&LM&@A]56#9[RVZ]?RZ[T9NVOVV5
MO_=5M9%B$1$?AT&8("IRKI-=!"+2]U$6Q 0'09[@T*CIP652$Z_S+6&OTI1O
MVO35RBL:XDUR:_L;8$;K"'9FB]X-(K %OP/C:PM&5]FQI>MND5^6S=$"'R$T
MZ^*^+/#APC9X Y[F^BO]Q[KL8ZRJIL9*1B*9AP%%:<+4IDTQ1E0W$@XC&F9I
M((1/B&D^Z_'P$R_>76(5L"S-"2#&5^7UX@'OT@PE R6=GA?@BNS2$X/.ED9Z
M7J!AONC(4U=D9VD+^U/^3AW;5[R@R_XLOS7M@@Q'?L8X$K&?*FM8YX@GB8^H
M3(*,41Q% :@\BPG1B9?;E@7MZ]HRL?5Z61^KC? TO"ARC!+PWN=Z@.QRNPPE
M=IG@=8GD_%E>AB"<3/4R??>:?"]EH^LP)T5 G2?UZ.H7K]4.7]35%UE)->K]
M@B<RR/7).19^AC / L0H)2@AG/&$,.I'S*)C@#$#1FOCZB8"/;7&F2[DDURN
M'YMEPUMN;)*]3- UTR%NP;(K,)/GDC?UN@>QS%]TSN@^3S?-'UJV;KR>KQMG
MO0*M(7&:MF5"]P62M !PG$[)@@Q@JWB$?%@5><&;\?^ZH6W3T2Y+.I-)FA+"
M49SD@?;Z<T0B$J PE2**$AHG.(;EDHZ1F]@Z.2#NT;XX"%2;C$)FJD)< 0'3
M&X<8; ND3)!4;B:C,T4P2FSFU6\B^/&2-WK+UE.WYE**)L'S*]5U*M5O'F59
M/W]6WT=]NQ(ZBJ_98Q=90B6G-$*!^@_",@Y0IJP+)**,4TZ4F1&"%CV ]N2^
MO):3-O.YHFW[B\>.F\;8D#TK4&^>.;ZF[KU)4(/Z^X: ?>T ZQFY\1I6V@#>
MMQ>!L_ "@B%PYA8TISRSGQ ,R;'C$#Z$15^-6PVJTFD;WNPO>NQNAR19ILXN
M$J,T\W46A0P1\UF,,C^A01H'F(:I<3^-LV0F5B6:K+>CVZP$0 ^)\^B,:P=W
M,L,4P2EQ;7IGG)<;T#/#B?QVO3) TP[KCW%1JM&^&.??GJ\?QD4)]OI@7'[Z
M2E_*06JR)'$<!%&()!.I.LNP'%&L%%!.,H%C$C$>$'#MB&OSEZURMC[WJ=M>
MOBZ]HG4 U+HLAZ5?Y "I/&4AB\,<^3J2%@=!IL-I"<K"! =8IJFO/=/FB5@O
MD^X^-4I 7]%<.>[SY+;/D]3^0V2S ]/8W>:O[\7KO[H<K__J,%Z_ZR[T;EWF
MLJ@WZL/1!M[WQZ*K[/-^U4:4+GP_#PB7$8I"'"&<9C%B&69(QBR7@J4X#HF%
M8WERQN=Q2'=L2/%+P\(U@1_33Z7A3=@/,3,OE3[5"7'C#<1HS[$[071MH584
MQ\E4<Z#N,K%J4G[G3[*: _Z3"5>S$+9L3_'PN%P_2_E5ED\%EZ?9_;AN6]>T
M66!5D]<^_'N3N["N_UW670GH_^P3%A3[@ZK0P2() S\F>K=)0A]AEC*499RC
MF+*0,,8PDSZHZ\6L[$_L6_B[U(EU4B"JC@?T3GJEU-7*F^2BAW59%__9:KO'
M<=WT(\RSV5;TX\Z>_;ZTW6]V2[QIYM/*T&]#FNFF*,VSK+T=W]N<,'UT,2FG
M#F\>\B*0N^I),B_S\[8Z>9&).>J@\C)<3-*'H>TGK9/LJDJJ_].Q\(L@CEDJ
M2(PD5XH6XQPCFJ0AROP\2J.,Q51M0"Z;,9SB8G)/45ORKRLE"O1[V*#*<91C
M''+$>*11]2-$U7D2^4'HQU(*&L)J:DR,J56VX%Q8FFV=$R,$V_\,6ES<>%N6
MO)XG[:R:K<W%&"+S]+HXR<&/U/!B#")@UXO1H2QN%7^E:K\I7^MN<FS=GH#Z
M2*AM*$L?NZ3O&%F8H(RE*<(BCU$6^DRI>4ZC)$[".#(*8P#2G5C_M(QX>YQX
M_X,^//[/;73?+J@'<#$' -;@AG(:N&#*"(24S5TF #+ Y>8TT-G==KKYV&#7
MH'#Y1^]% </-=U$*EW'OYM3B=0M5^WZU6C_1>E-]6-/55QV&*KZIHRR_[R,=
M"55&,L,^"JDD".<T08QE&6*$^&%.0Y\ %.PE:I/'AG;D/4W?0U[+@M?Q - *
M%V$S4)\NP8#>'H[B8*,F+P("4(XN@;%3B;8?"DP)FLHYJOHN#C*?PC.59T_-
M&;_DJO?(I_I>EKN&SX-\^446YH0F+$-$1I$R)K&R([GZIV0T2$+B9T$,JBL&
M(3ZQZFL(>\OUZJXM]3NH97%M\Y$10,U.MU/!!%6*)]N.M,#M>!E6P)BRX\AE
M""9K-S)"^H5[C5P&Y7*C$8,QKLX';L-#;E>-([64]W)5%4]=9Z5A:C 6J3JK
MQI'T=;M8BC*>2VUHL312NDADH A\(/V)%<Y>$NP>&WTRFX,\82.<S930A.@!
MKY=< '=-_C!$?/>IQ$;47RJK& +-2((Q:!A+9225?BOJYT]_K*1H&BQ042R?
M?Z7E?\B:LJ5LJEVD@@4L#G)$LU#H"WJ!F!^D*,&""\YQ$(48I(),J$ZM>#H>
MO(:)KA=(PX:WXP-4*@2&J:&Z<8T44,FX  FN9"!"NU(M1C3G52@0&([4".AE
M.^7Q4=:ZY'\36RVD>/7\6R7%^U5;ZU^[^752>FOA<YEE>>1+%(<YUKG#NA98
MEJ.<T8B%04R4A0.)(C<G#5(C\,!RQ4C;,&6C[Z[40:#H6?#HE@>8_@# :J9$
MI@$+IDDT3DVSCYX+'9+YTV\M:#][6UZ\V\NH@14*' !'6@5 >%;5 @?D4+]8
MC&#A=M;)A_5SI\O46/HV<;WIE=D;J7T4Q4JKLW>T*/]&EQNI_K;4L26_/>HX
ME#?K/U;ZOY_+@LM;\8]-VX3D=K7:T&5;]V(1Y#0-!:-(:!.GJ;WT_W/W[LUQ
MXTJ^X%=!Q-Y[MT]$888/\#7[EVS+/=[KMA2VND^<[3\J\*+,.2520U:Y6^?3
M+T"RJEA2%0N) BGUG4?;EDADY@]$ IG(1\9%@(,@B;,D"J+4S,":C>.)3T:=
M"*C9R=!>VBLA4-WO_6(@!LJ5'.B'%F2!-JT(Z"?1"_$W]*C%0'0GA\X/UI+H
MX,6QHB.O]"T8^./?V@S#]' _N7OV4<__[F WE !I$=!OW>1NI4"_]K/\83?+
MK2CH:C#+G33G2LN\TBP#+AG>VFS;752\K5F'77_,.0.C5RBS,#+?-<R<N!Y<
MY<Q*^,*TX:N-XDW;4:W-'B5^D"A3!>=2Q)B((,$LDAYF+/8R01DC'BA1X3B9
MR6^W=SFA_Z^:@484O"\W"'=UG,#)^#[G0NG!-S<V@MNGPQZ5RW4V["&1UTF&
M/2KHR5S8XT_/G J[[:IR)40;=DY77=7DGCFE:Y8QT<U&O123.)+J/X+BE*I_
M)G[*=&&2F'JPBY?I>)W:5]JFLK3MOQ ?IEC2PQ3+9O#<8Y_RTJ6V[!M/T9T0
MV^+I="?&*^31&GP'AI[:MS&[0/_NY;FS^WY6>P&VE>#W(KR!G%ESG%\[6]:
MT[]&GJPYY,XR9 $D+?Q1[[_+ACY*^D_Y[9%R^;'X(?\A:?U5EO(/NNJR<_M
MMI D/DE3'WL>XYC(4!T3XS#&:10D,4F(VD^8L5?)G.[$.\&>$=1RLD":%Z29
M03TW?38]P.8'H&K@GYD&*YA>-8?))H@2@!? TS$-;G;^"@>?&<S) !=^U%4
M&&X^@Q\NXX'9;O&ZW9F^C;RZ>90ZF'UXD:#O&SZNJC]V$1)+$F<TS$2*@R"-
M,&&YQ)GN,!1[7&0DB?TL]2$G=&/*LT1AEE6)VZO%0A$%WB&:8VAVNIT$&9A.
M[4#9\3"X*%QT-XN:#[1CQ-V)$RR[H_.C.=U93X-@.)Z?[> #6)S4;F6=5_4#
M+?M\]5_+8MW<?ONUV28$!L*/HB3#?N133/(TPUD@<RQY% 0AITIS&"4GFQ";
M6%L,J'>&%VKIHY\T!X9VM!%F!H<OATC M,,X"#:GK'-H (Y6#E&Q.T]9?B*P
M,Y2AE*,'IW-CS'=:,I3FX(AD^@Y,GTDNEE>KU97XK[M*6\/]]V>@G(Z_.;$Z
M4@0'=X(-6E<'KB6S%7A"YG$-=+FX,)US1E*'713&)3MRWF@D_[?[ZL>_JQ?[
MHP87^Q/&B>%F65SCHFR7TYFG+BMKUC=7'Z1TO.^2/):)CD3,2:3,"*8,"N$E
M..-<_9/&24Q$0&4>PPK!G*4)^3RMRKY<<5YOGCGN[<J$G<;-S(APB@5LJ6Y)
MX[JC?=B@N"?OOJ#664D=U\ Z3>]5RE:=%?]4I:GS+[I*\[RMY2,MQ+8S<E^G
M]ZH4K96B"Y6LFR4-0ZKLA11[OB<Q(3S!J1<2',:4Q3[+*25R6P[73"W8,6*T
M/@[+VP)-B8X))#OJ71'4JC6\:<O!I4F@1G";:9,)(729&+J%=%M_6R/:N3*N
MQA%UD!P* 62R-%$C)EXY810"U/G44=!H=HIL?[UUJRA]*M_3QV)-5TLODR%G
M>89Y&J@#3!3E.",IPS1*>1"J7](@@QU@3E":_MBROTW68&*UE'A'&J:#3B%E
MIF0<2 ^T*?9B:XI:@[P_(S9849P1RI$F.$5EUJ5^1M3G:_G<XY9!2OR[%!O=
M7&E0IN>''-QFZS+..M?\Q*]UI8N&MM%JS9T.C%S&>18&H8RQ]-4YA.1,G4A"
M+\-^$)!(=^5(HA 4F^2<Q:E#DGJ&N^SG 4_#T)7N_/)%WZ.<>@0-&4>_MZQ#
M\SW=3Z^9<GK=28/IM9-SU$[1\-_=X6C]G9;/)O;<Y,!#B2;#SU4$D7L&YPT<
MF@S@%_%"TU&R+4/<K.L-7V_JHKQ__YW6][)9AA[)HC!6I[,\R[1[*<=I2B,<
M^$G (Y$F2JO#*N*^)#*QWCT@B7A'$UK_]@@T9AKO4H%A.NM0UO=G9+6H37M:
M&&?%9X^0F+FZ[&DA7Y:/'7G6;AF^KQX>BO5V_>NBM&IH6?)"-A^*AJ^J9E/O
M2\#PE'DBR@CV<C_&),U3G+'<PX231*1I&.5$0M8GB/K4D7M[7MHM]X ;M&?'
MNMX.#&JS]3X9@-##BSOLP&K""@-'^@-&>U;%8@7+<XUC-PA,%0E9+#_+>[JZ
M5J/W"5*IGX=>1%(L_"33#0<89BD+,(E\+^&A+V1HE$AV9.R)U4A+#77D0"EC
MQV 85P(7"@=;XA"YC)?PB 0C=[;JK6YMJK_LE^2QL699<"-";)?3V",6L5M=
M(^IOZXK_4RW)IA!R6]>82W5J%S?EX+3^<UTUS3)/(Q'R,,!A**7VAS!,O33
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
M&#O&JUETP>WU#<3;71FM>&L!@)[LZQN'W_91IBU=T]6<G_91Q@_=SL]_"?^
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
MS]3?=!QS$/E>3+Q<YB&\W9(#B.S;+>UZ++&ND= "K9YCAS"JMBQVOVT6J)3
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
M8AGH]N\B;J971A%0&5V$K:%JF@LQH*+2,>&:+Z096Z">M:=>)=V4#DM'.X'
ME8*ZB)=YU94+V%XH+R>#.BI._W.MJSML,Q(#0G/=_Q+[B1=AXM,,IT$:X$3&
M690)XO.87U2;_H#<Q,IH5X=]3?_LJTL!\S?/H&6F?=QA %,O1VO3M[0G2> T
M$W.JVO2'Q%ZW-/U1P<]6IC_^EF6TDHX;_-0T&RD^;+3]=2OKHA)=-]?NYQ^K
M>EOZ89E%L>_'08ASGDIE(+$$,Q()++) BB@- I&#5CV,_-0126T!UJ*EBD3+
M#GIL^5F@IN5HL?VMCBIJMG5)?BK*_O? 8&L@^&9*9#I(84JE0[,CB#I.T&V/
MYK<>S4][-+<,.8P8L@+"58P0C/B\44%6P+R( [(;Q?8PPM:?2J7QVGO7JS^+
M9ADE023\1&FA@#%,0I'CU/-#S,,LCV,:RBSS80>0YR0F/W2P-=I35%NMH@GT
M=!_!Q?2H<8FTT.,%2%"+\\0I69R=(5X0F/G<<$K EV>%DT]>WNEQ;X'<UCL3
MI"TML5HI4Z2])5\_#R%B+ F8E#@/6(:)3#V<<L%P3M4)0C#I<Q^T2B_D9^(E
M?=@>\:&WTMO>D1>$%;F:"S/-,"/",#5R".Z>M04:,->7H5'LM27U6]3OG(?5
M.,9J@J:6-MR\6O?+"Z ;:Y-YR;"643URW<5"ZT*82S_QN(B9A^-$]_/*A8_3
M@$8X%5Z>DX13+B-(A>V#T4&:#%YH6]%"JPH<N',@OQ<$44;B"/O2]]4)+?<P
MB\(49TE(<^I)'L%*?-G+#]?D6O[/%\IOIF^MI8)I3RU0G[[QDZ;T-W2U7M<%
MVZS;G V=,T/=5MHX*IBK@*6#L>>-53HFUHLPI:,/V60]M#'V5W7=GNV-TQV&
M;TV\4HZD 1CZ3H\(.+YD+I,-MEZ.93>X,EQ.RV&9S' PU(Q9#,=$.$Q?./H$
M?!W<_GA\EEQGN!1>O#BU!4"?T(]&.[KRJGYH^SGJ.&*UE6YJN4 M+^:KXZ78
MYQ?(11(#3^0OA9TB!7!4*JL5\W*TV1;-24&&Z^;T0Q8I/X/I:7UVOY;%NND;
M(E&?<N'Q!(L@3C!19S)U.O,H3H04H9!)%J9&A9;/$9IZU7W[%9)O,H;(^ )S
M*2=PK0T66>=:;\F>[^P$$Q^07>,(!KMDFA-P.,J8,1!M-$%F[/WY\F$,I#A(
M?S%YWC(LJBCE3=[UA/A(>1M[];XK*?>NJNOJ#UV"FCZJWZR?EH13CP>AQ-P/
ME-E(_!13GS#LR91&7A '&0.9C1#B$^NIGBQB6[J(]X2!H5 0/,W,T*E0@FDY
MS85VW/5M7K:,+- 6N1TOZ/TYY."13Q80N IT@I">-Z[) I0784PV8\"-A%WK
MO"OQ7\WUGWQU_QM=?7VL=?^\;YN'A_I)UX!IUN4=6\':;<)'GEB1'#: 5%QM
M>@?F FGV-JWIVK6+_"H?JWK7$W+0;QIHBUB@>]Y8F198F.ZQQ%07H'F)J^..
MF_8X6=E'%N1F,Z#LH1A:6!>, E-,0A;+ZW*MOJR/Q4I^V;0+(Y?*WLK5P28*
M68!)FJ4X32G!?N1SZL<YR;A1GZIC@T^M>5IR2--#'4$S%7(4AW$%<:ETP.5O
M+ICQTAV38&1AJM>ZA:G^LE^81P>;9=F-B;%=5*//V%D-G0==%_=JW:^[8%K*
MPB 08825-4 QR7.)T\!/<!XQ'O&0IB&G$ /A!)V)%U)_&;,C:Q)J"X+)[-SO
M0'C8.K.1&WR4/R.5HU/[*2JS'M#/B/K\+'[N<=O=[4H(->E-_X<^\?M+'B:<
MA#[#S!<"$RI"K$SX& L91(GG!V$NC++A1ZG,L]_U%!?;OZ#64AU+O '@9+H-
M7BB]U7X(%]QB=QP1[()M\MBH,^^7(X*]W#C''K8NAOY8E5VFT*Y(W_6?VE:1
M[V0I\V+=E6?>*-MF7U)CG^03RD!&/,-QPADF7I;@3.KZZ2E-&"%Q1HE1 3!'
M_$SMG=MQIUU0@UJ7/8?HIY['ORW0GLV#\B^66_BE\V2VU<^(/DS5S *\3;%W
M%W"Y*PA_$3=S%XUW =V1PO).AKVX>\VG4GRA#\;E1X^_/;$VTR2L&\IL!3SO
MP;M<-IBN>-X<9J'TA2A^%&)#5VA4YDL:P#P3RT6;E^V0K]7,Y9E((RU;GC]Y
M0>\&]KP2^R"\ZMW3_I&^,$/KB^V*M3?7?\J:%XUVKGXJUW51-@5OO;'^DLJ$
M2B_T<.I[/B9^3G&:,X(EEX3D69;P")1D,!VK$Z_YJ_O[NFU?B8HM7?2C*_8D
M]SRAJF/3HC?$-/-G=GQY&[,"TU;#3A,'EP3#L$+VA(YVI-"\Z^(T+??Z$F+'
MOU9ZV_EM17#<GF)2E%UVL9B&T?F;74P*^-&>&--2M&ST>5"EY^^RN/^^EN)*
M[4'T7NU&#[0HM[_4.3W^TO.B4&EX@I/$2S&)\P@S/XLPD6%" J*L5UBY12@#
M$ZOS+0.8=AR@>LL"6FD>4)M/IM//GR2MH=GG8+3-U/24&,*4[XNR7EMF4,\-
MVK'3/=&6KW?8:M02"5<-2*'DYVU+:@G.BV:EMN/8%OAJFGU'LZ>N'.V'2I-9
M>GE$6!1X.$JB4!=P#M6!U&?8#R3+DB!-LA2DC49H3:QX-.5!#SUE9/75CG_O
MR /=6V.@F2D51U# ](<]"A9%M\[*YZRDUFE*,Q?,.BORRW)8YU^QO6K>IH!V
M/<#V"1<RS"23>88C&G!,@C##69)Q+%+BD\R/HBP*89?-)RA-O*2/=QAHTZ7W
M_];Q3%^J$O]"ZW_*+C&PCXKZINNS6K0B/PVLZ?6T [B@%]1;D@O4-P*<M"'@
M61&=W5:?HC/S??49<5_>6)][ >[/;<V9NX?[7\K'XGW9B%I\7-%[4W_N\;>G
M]NUHHNBN>-#'U5^^W'[26U-3*'FE,/?SGA#\O)_W<IEAJW!,7/2[INTHM')<
M,"M/[XDA9_/TCHLT]/2>>=(BV^Q3658_U,;<?*YHV<<!AT&02A82'.4YPR25
M!&=,9#CF0<P$9VEH5C7N%(')([5ZBDB3!"1:'<-B?*6YD!"ZVPV%LTDG.R8E
M((WL0FGMTL<,IQ26-38BR6BVV+'WYLL2&^'Z(#ML[#F[0_>ONNI_=5\6_VJ+
M6_8WN,T'R6MMKC=?9;-9Z<.^+N9R6Q=5W9684\_>5DW1-0:*0T]D<>+C.)&>
MTBU"X#32'7-#98DSD7)"Y+)L+T7$G?DQW05O1I]QUGW&+S@T_I2_2K'A713$
MNFH+V#[V#.A@BD?-6N<>A!W<G4R.V1E_-JRM%.20NS8H9<O? FTY1#L.N]I4
M+8]]L<OVE1V;[JP&EZ Y,C"<L#2K+>(2Q.=FB].QX1;.S6;=K)5UK\MOW-^O
MK^M:7_9</:Q-C9R3 TQ\VAK01?O[;$6^*F6U:9Y=HS[H#GWFYL]I5,Y;0$X
M =Y@.,0"9!2=E=7*+CH]ZFRFT5G!AM;1^8<M*MG(ZHJO-W2U>M)-98"+\OC;
M$Z_(V^L;M*7:=L*Y; V>0.#\ KQ<^/^?NG=K;AQ'%H3_"A\V-F8BC/EX 4E@
M]LEUZW5$=U6%R],=YZL'!:ZV3LN2CRA75\VO7X"D),J22"0$TC4Q,=6V3"(O
M4"8R$WF!2=]E=,/:V_22YM?CYO22TS6ZZ27IH-M-_Y,>08C?Y@M5;8R2O/MK
MU7JD6#!)4I;983H:X21.$4M+A5B1B#2GNG#,$3NS_L@BN /8.W[*B1$. 8C+
MR(,)V0%E/N&'$R0"H@^7D>H7?'#;3%CLX3P=O:&'$Z]-%WDXC_-!X*'G,8_
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
M,+=QF)L^[MF%/+K06^ODB>_AC^6^]9 ZBC=W"MXK.G<]Y/?[>GTO>A67[^Z
M6G-T&\OG&'.)BP05DAJ;+Q=&&\2D1$(FI)0T3@ON/C#W+)BQG;[.M>/6[X'<
MX9QGC\-=3A"B@3[>*7J]YNB=)1Q4ZAV  ;Z5W9"-A]9N#Y U4*I][NTI*[,'
M*'A1B#WT]!@%>>TQ*G7!!.8,244*A%7.$>6"(46+5*NLR+5@H/"3 ]"Q;X2V
M.;YMA5S( CF0\1&:%U!=-5RN%MH&@5 \2<W8:U@B$"; *K@NLD<Z(+ZI]69N
M7)_/ZU94.DDJ-U7UK.2_GE;+YL'*'D.YC,L\XP+%(BV-ZT()8HGYQ_@O96%L
M%9)@ =024!Q&MV1V&$5/6Y1>I)C-:[2B9X-7)':(79)M!M\)9\TS)G_!BFC'
MVATVAZEJT4V'M7N<@BHF7X:$TU-@#*966[XL.J'%O)>"Y[^\7VZ,<KQCWV^D
MT8YS/1>U+=N$>V;&O%&BS',D2*H1CF6,>!PS%.=%DN,\(V7JE!LW"&ED!=7
MK@N6#J&WL57W))=^?O4KF*!<@*D1;P: DE><B/-*6.E?>;(D%2<"NXDI;B]X
MWJB)!R6?%^J3?J?XYF9IZTWJ))A]HE4A,ZFQ,3U8EAG30REK=> "D2(N4HP3
M0ED!NAL;!#FR(&\1L)<A=0CUSH90+3)1!QO@E=8P'QTOIX)R!WC-Y,28=KQ&
MV)YQ</)#70$- YSV,L>9 4?7,NYO^NF*,[.];Y9B75\PW*KJ>6'CN!\,59_7
M\]6ZF6]GGOV\JN;UO<2,I)G0LD@1QUH@S/,4D9PKHUSRA%$J1)(Y60,AD1I9
MWUQ+V<"QPVHVYO1\:@%;.7NR*$4_%%L#-4Z0W7#325/S&*:UNMC5QLD6OZMH
MBV&TPS"R$A?5.+:S/.M7=FB&TV0AF19(UP5!:5)M&)*)+_5ET+4O:[3Q8;56
M\_OEF>+W69:F3!-9(BYCB3 N*6)YD:&88ITK3&.&,Y^>&OU@1]:*+7"_IAD#
M#'-3:^'9 %-<NS!YBT!O2XSP#2_<R [<VV( Z*NTL7!CQ+F.%8YO^RF(WU9+
M]>.WNF'5A^>EW%Y1LK3D,M,*E84P+ED6QXBD-#%LEVF2$58 C:C38$96 #70
MJ.G&%6D+%J8+SO#&3?8OIQ@FZPVQ#<"HAAAP*HX;48$D^0R0226WG]"7DCKP
MM&?@1"W,7^]_,6*^9HOKI;R6C_/EO*K;>7]3K1;8U0<3KG2>Y$C9UE@X+S/$
M),.($B(%8;$L4UA^,03ZV.&4!I>KZ+[!IBXE9@?X &,I(-8ZAE7&8A@PPK+E
MU2\=7AVBLCWZQU 07EP(%6@!P9XVYN+#EJ/PB]<BGC?(;2?1WLOJ7=\J8PQ(
MHJA :6H\!\R443ZE*E$>TR3..8]C6%-/$/2Q;XUK7"K;VW/SH**GVD,#=N*#
M<=/Q_G<L'@%O?G?MD >3449I".;%AE#WO2#8T][T^K#EZ([7:Q%/:X?9N')]
M@VS 57/9-N&[54(9Y28_+>_6;%DU/>UG0@FC63A#NI0<88$IHE0EB$K,RI1J
MA3%H>C,(^L@*Y_-Z)90RYGL=2'QZYHNYB%;:^()]/7X",-71SAF+54 [AS6W
M2&V.R0$JT1:7R/S<P2:@F>/#A%!F#@CVM&:.#UN.S!RO13POG+[<K>OV;#^^
M[#IT[Z8M%WDJ8HXD-UX5SHV*(65B3)Q$\DQ@D? <%!(]#VID??*O?WSY1[1I
M87MW(N_AE.,53Q#Z@1<W7Z(MT&@/=02W9YBX4!<LYP%->VTR2/#19<CP&WXR
M_-EL^4?VV(R8*F3.\E*EJ,1I:J0VBQ&AF*,\98IG.M=4@/J<=!<?^]PWOT46
MEE<WA0,NN$FD+VTP&70F"RQTI_ /)&8'2T\J6*>(>BE*)Y_Q-+LW;%-7U+ZO
M!U78<MO5LF[\;[]'6:9*I0A%.DDEP@DK$,FI1K+,1:)TG.$<U&J_%]K(XM6
MC/8PO<2LGU^.%G0H+L $$<P N%7L0E@H*[@7UK16KPO91U:NTTL>Y:@VH^Z3
M?KM:F$]6363P5E7*+/)PO93OU#>U6#W5!?/W:U5C,#,6KHXU3Y&@S)BZC):(
MEU(AEI8Z*2EC(LF=ZU3A\$<6_#K%T'B*HHM2M&YQJN/C<H]5Q+9H 4H]/7C>
MKRHFX"1,>6R9>(!-=-ME8@>AZ'H:)@(*:<=EIE^%K>\W\Q^!JG#]>=);GNNQ
M['1UN_XT'Q3T7K",9^\1VTZ^F;VTK5 M"A(7)<M0GI7&UQ%QC@BG"JD8YZDN
M<QPG):C9R!&(D35S,WV U1"OHJ%N&:YL<3/"+B,6ICP;.J];.H-7Y)XG)50;
MD&, T_;].$O@4:./\T]ZS^XY(=3M56LS0WW&6*)Q*3)4YG9:N1(8<45B5"B<
MI2J7/(U!<N@ <V3!/'NN;^^8H6/$AYGH)K6!60,3XR&N7$4-!M'7]K^CU*\
M6!!N]M$@Q*FG'KFRX,2\(^=7_31&M^F8O<K81SMMT<S^MQE5BL:Z%';2=8QP
M(0K$DU*CU/RHN62,$ Y1&ZZ 1]8=']A\'?W.%M"F',Y\<],48W #IB[JJK8]
MH*M]/T2D5VMDD0JG%:#D!E(-SF GU0]09KQ4$N#W/<(TVTZ%G]>K^S5[M"'=
M:J8R+G#&%"(T2Q#F<898(0A*8D$8)@6GW$DEG(4PLNSO6X ^-4"C)PL5$ 0X
MR1:'6,FEQ,)$NZ7SDXY:>-'G$'0"PAF7TNL7L(#2#0M']-'4&W X^>)T(84^
MO ^"!KT/^G0>9$O#SO867E&6I317*-.L1%@HC7B<8*2*),F*$I=E"6@VV%EY
M9)W1@(+TU>M2[: :?&F!J80&BE>?P"X]D-: GG1Y=@/LWR9@^[\3J/=W_.N^
M,&&3OQ-X'O;U._6 ?P)D==NTLS,*0CZ+S:_SI=I^+[3.E$Q+1%.:(EP6Q+:X
MT2C794IX$A=9#$YX/ MM].A"#?8J:@'7_O07M?XV%RIZHY;BP99LP3,=SW//
MS64(QA-H6,&%'6/4:KC0&S!I\3RLR9,4!\D^E90X_))O#L9*_-DTS'I7SV%N
MJL#;@9(VHCF3G)1"*H%(RAC"N,"(*DQ0$<>84TWB) /%"H9!CJP#;K8C'NKK
MK_VLUZ8]W%JU[<9U^RFSS=VK"^9!#+/844<$91Q,432=>-LV>@WTML-$9QRL
M12%D1H<KN<'2.@8!3IS;X<J XP0/YS=]FWQ6&SM@<AN3G\52EKDQ!9 6*D,X
M5C&B><91GE"IB<2ET&*VL0-8W)3$2P @E; #XWX;7H^&L7/=FEFQJUUS?>5U
MZW#$'S<)OX1JH,NP(W7P6L6C&>9I*H)UNGRQ_,1M+$\3=]RC\LQS'K[VMAG#
M'?O>W"\>CA*89405+-4"93FQ,]Z2!/%<:I25)#'BR+3&L;/[/0!LY+.Y!A8M
MMM  KNP0DQR\]8"D0\/U;:\4VQQE>U??L.+7$5@!</0#LL3/][^(-;#(@".M
MO<&"H36FBQ\X4G,04G!])]S @!K,+^M5M4NA2;,RCN,B1PQ+::,-YB>N,4HD
M*8C1:EA0D+OA!'7L...V/+G)-[I\8L QV^(RTTDJ"H2)[:*E$HT8I0J)C"9"
MYGE>I'+V3:WYZM48UX7^,['.U38+S ZHP7:ZPKU&X2KB2J_6*KI>+%9_U;ZM
M'7OWUHCR?!/]:O";:!C#68:,.(WA&.:KCV,XRP:7>0SG7_9-([.UJ_9*^<XL
M\&YEYU[.&%.I3IA LB@3A%DN$-<\1L9@Q!*K7)8IA>6-'0,9/92[!1E];0 "
MZVE.,L9-&5Q*+C1*ZTZI1T[7>5*")7&= #%QUM9Y(H_3M'J>G7BR[Z>GNA'G
MI^=-M3'.^GQY?V,4QGQ9S46=YC3+C.>GJ&(HES:1BZ02\9BER#:H("(E*=6@
MR2FC83JR,KB^OU^K>[:QW6!:L-$W"_<J6NU1FFB0[^"N.<9[?X:] (:)+Q_E
MVR)O?MBC;WL=;W>U/[UONEF^KDQ^[6&^@WC^9TSS=65WL'&^S@#]CH2;Y3=5
M;2RTW]EZ;D\;L[PRHK6Y-5K,GCSOOV\,NG;(S?OE\V/;B&2F,$FPO8?7S&A]
MK$ILW..2H\2XQ9PRR1,):G?FB<?85W0[K*ZB+5[1%K'(8G856=RBKWOLH@YZ
M0$O0=S/<]/@$+(9IZ?&X"U:_%_(FD'+UQ6)2U7DAJUXJQDN7@ZF]:KW9EYW_
MHFP.XM/#7+!%W;M $"DHPPFBQ,;\6*$0IR1'!8U5F6828^TT);07RL@JJPL.
MU-ZAGS7]*B88P3 % J'5624XT=(G\&:!CK";W_:"WK_V)&+L1-Y62-T>]K,\
M?E55I=29L>2M!52]>U;_I=CZP_R;\3%UD94)-^*8IPG">5XT_=BIR.,R%AFG
M&:BO$12!D077?$DHS%P <]#-3AB3+S#Y;C"QOM@V#:)&YF"X[V85<66<M[GQ
MV2Q&T8>^5MA@P\"7&8$L C#X24T!7^:\M &\U_'4/#:FO5I:4&HI?EP+L7YF
MB[=LO?YA/JJ]JNV=C$@+*<JB0 SSTNB<6""6:X42JDN>I922&-3]R1WTV(&J
M!G)57]!LDXMLTJ%1]M(*U7PIU>-R/WVRG@H,O/<",-I1-8W"/J!2,CA$'22N
MHA:-$>ZVX/2&TCON@*?5.&"&'.D:^ I^6L8NU01YMI>A+],:MKVEKQ]7SS;C
MH"S:NS"24(2I((B6QLA1+$ZSU/S#F%,+*E\$1H^EM&/B_B95\]/?;<MTN4VL
ML3/[ZLOU.F#>*!VVQ1RF=\"L=],^8S(4IH-VF.QOVJ^BXQ2ESFR^O[W;,MWH
MJQJ[<%K*ER^!=!48_*0:RY<Y+_66]SI^VNO];^^OV\JA,HO+--4$984=+<[J
MG*B<(R)T5K \X:7(82D]^\5'S]NQH( 5B2=8P#-6$ID9U1PSJYKC&#&M))(E
M+:6@1CG'H&BW'P-\.GX:0-Y4NVE%/UI@^LYM%\&*ZQCU0"JIL_"DRN:8H)=J
MY,037IG@W=G'[[_/-Q^4^JS,YIG#E*DTRP55*":V3C/5&#'";$* B),B*_.,
M.>4"#$(:67;JYB7S'>PKXR;--Y&V 8FG!@%0+G0/Q_H%+2@?8'+W8BKY560!
M1Q\L"SZ'90$H%SP,*WP3P;U9 DT#'R9S( >\9X$I$\"'Z7B1_>WP DQI*2%G
M[_]G\^/ZK[6L;I9?GA\?UW6_X6JSO..+#ZOU]=."+_YKVX+ 03L!EYPL[^B7
M-5MNHG?VQWT;*EM%VO:^KI,*6A>@BF[5TVIM(S[&$[,DL/6/PX29.WLCYR;D
M4";W:[T1^0O3@>.R-J!5X\FQ$R9/I<0_[E??_C^S8FOM"+DW<J!P)E$UGL1O
M%8_OZYX5* M659_T'\RF_VP^K6_G]P^;;6><?6^MMVRQ4/+-C_:YJGVPFO&8
M,HKC B5:&(\LSG)$><R1TIK90E<[;!!4FW(9/B/KMAH[*V9_-7 -JZ.U!7P5
M+7?-MO8S?2)1HVG3^]H7JMT;%Y3/7[IG;L[4A#L!TX*[3?ACOPFWS2;L.YYU
MY@N]W6W"'YU-:+ ,6/L1AEVAJD(NQ&;:>I$PK#NJ) FT[ AM1-X_/BU6/Y2J
M'_ILON</K%)-U[F2\%P*$J.<28%P21+$,O-/3C61(B\Q*T"I!9YXC!V!/]MP
M9&E8'*D6K_;#IQ:SNG_A2&U'>K;$35].P&B8GG1I4++%JQG<&&TQ"]5(,!!O
MINAFTH/%S]/B9)A5H+XG#LMY6I6L>K#_M][(-[:P.1.WRKC1<V&\$/N'ZZ4\
M_*#SY"P3PM8W,\2+)$%84HXX9N8?HI1BA<I3QF;-Y.<O&[;>.%J6E^ $D=*7
MF+D;-@;FE;$9JX=([4'7+4G6.\2:O[--/?Z:J_OY<FD%V^A1^\$/Q1R;-X;9
MJC3/%"99:DXK:DXK20BB0E/$4I9+1H3 "6FWZOU2_I0;M<5KQ&U2MG_.ZVR0
M5#PO%:5(<TEM6W.%J"X*E*DBS6668I:6H"Y$4VV.?\NB2[:G^4I,N4&.SMA4
M; >Z8C6O[;]1!]Y5M$<E:AZQW'_Q8?>-@&Y8"$:%<L(NPF5:%RP$VXX<L""+
M>B8-;$V;IG/GZ9JWCZNZXD/).EQ:U?JC^W?;L>KC:O-?:G.KQ.I^.?^WDC/,
M-"X36B!>YD:CYAPCFA04B233/"6\U DHXC4:IB.[<$W!*J\+5I_:@E6V+R*\
MBI9;G)M^D5=U,SGSZ<8<@ANCB[=X&NW0GP4T\08[YAK\#-L&= A/E1AW=VR'
M[K;RV.)G/FUV[+:S8Z'SMD;G9JALBM'PG#8Y8VQV'^5ZC [0TU%M\FL_K-9J
M?K^\8]_;YH1OU%+I^68F1*HT2RFB5)4(9ZE&7.3$?#'RE!1YEL4L UUO],,;
M666W8('F[0"+' W8<(0#3=0&<-1"KC-26]C1WUKHY^.(</O3C<Y0%N8 M&EM
M2#?2CZQ$Q]<\YW]UIP]>\ZKN+363@I:,B1@1F]6.<Y$A3HV3S$3)>"&YP+J$
MY9&>A#-Z2NGVR]UT@OLG<,372=:XB?/%Y (3'PZ'=49?MR #9F#VDA1J0-=)
M&--.X^HC\VCT5N_#?A)I\U7J=)5/^L-\R99BSA;['*NJ'4!9BJ+(=9XB3=/,
M'+Q9BCC/,%*E+$M*%)<Z@TFH$]S1);:3K?.;8M7SNC:]@<5L;BQTD^3@;(%)
M]F'VT@Z#3EIC-<T@3Q ? JD#-YB3J@<0&UZJ"]C+'LG>OZFU^+/-V<L+4A12
M$\1R%B,L>8EHG.>(RD0GI18E2=U;?'<6'MD&KR$!4I6[)/=+]"6$P(2V!N(S
M7*M+#"#-VI,HOZQJ1^)@&=0G*.A-F.X^/UU^] DL#]*A3_W=0XJ_/,R?GN;+
M>SOU=V[#O_QYZ][/,H%%FO,$);PL;>6I0!QCB@BCI%18DH1A9ZGN 31Z<+2!
M7%]\R [L.@@*D)@^7CFH@T <@,896^*O[63N+O%OPQ$/4!^!F."G3CR9 5,O
M#A3VJIN^]Z=3/PY4'*@CE^?AQ1D?#.ZKI;(A1F/A_WCWK.Y69OG_>6:+70N*
M3_J.?6\#%-7UX\:U2L-G[?%C@A:E:(M3)(TIOEE%+]&RYKF-G6TQ&[P#",/8
M?ATW!4^!_LQ8[ 357ES"$Z\B#"^ DU5C7,*.;EG&1>MX&$K;7OA_=7KA[YH1
M?51_78O-_%N=Q/Q9K?5J_6A3:C_QQ?R^1N6+^;?2<R7;28GMK4E]8'*:9D1E
M*2*\8 BG+$%<Y1+QLL@YR7*6"*=N]R/C.;+RZZ 3K7;X5%&UQ2BR7Z1HJ?Z*
MV(X&6T6USQ6*D#'IVD$4ZP9_R+3A\7;8P3K\.?8->)]S9NI'IP^;P3S:HUX7
MP^YV>8]]M$/?YBO5!$0="GZ.380,H/XI-M-SG/5K;RIP8/;HK.X?OST>^ F'
M>8_.P\/1X..#@[?_;4<7VZ&(;6)$U<Y<D3'1&$N!,JTTPHE,$2\T0UF,6:)%
MD6'I5 74"V7LP_7$ &W86)I^'O4?<,$HAQU/7D2#&@(/$G5!0^#S:T_6$'B0
MO&Y#X.&'?:?3K-:;.[5^K/M_UO&F1)0\E:Q F&8QPCRGB)24HRPO$JGC3.-8
MP<;*O 0Q>DC2 $3FQ<>H&>==S_:%SG\YXHO;+>-EU$+#CY90"VS;HS=,I&V8
MEF"#38X 3#R1Y!R!QZ-$SCXY\5BHIN]%Y[*QGNE]]\"6[=22W^O,PIME4__V
MA[(UODI>&S^>W:NZG8;MIK&[P9RI(DN5(C$2N4WSQK)$G!E7F7*9B*)04NIR
MDC%2H2D;6<TTV-1%NG*U6+!U91WEIF 76J_[L[!L[.E4K[G%4-UZ\32KMD--
MA]JH)C?:&'KWLZ[:[Y'Y&FUKEK=D1RW=IYO@_ 1SL,;:SM>>FQ6<KO^,.5MC
M;6>PN5RC(>AWAO^R6LF_YHO%K5'_'U9KB^&,2)'*)%,H+JDR_BP6YB M.**Q
M(+C(-,F4T[5^#XR1S[4MQ.BKA1FU0(%]7$^QQNULN9!@F):'T@I6K3W4!%)R
MIR!,JFYZ2'PI^'V/7IAC^VY>B<7*IIE6NPSOG%*=":T1BQ.,<($U(EG&4%F*
M4K-2"DY!!8Q]P,:^O-YGCW: NZ2'P]GF)J>AF &\=?;F@W^>; ^!H=-C3X%Z
MG:S8'J+/)L/VO>,GWI_7;;_UNG%+T\NE,Y5S5M R2TJ1HT+P!&&1EHCE0B%9
M8)P+3B3+0*?M +S1X\C;:0)U-ZBKMOE3=XJQ?T^H(5:Z27U !D'#S5O>?&EX
MT\#N3@H.)_J.5 :2_B%HDRH 1])?Z@#7UR[(#?FC<Z'UA2U4]=O<_+-9+=5,
M)+ED+,F1YG%I#GJ6($++&!F<E# V0)[D')SC<1[>R&I@W_S6-HQ3Z[I,I+(8
M7$6/6QP\;NU[&-@O_".P!2;\NUOS/PYOS6OXT6_C\,0C(R$,;R[,+/#DD5]B
MP##%3A?\/<M,?U$_3-/)"W>'USRTWWNV7ORX56W?D7U3=G:O9EE<<(Y9C"B.
M-<(Z+A#'A48)CV-,.4LS[C0A90C0R/JNAARMMZ /ICT8Z "I[F.6@XH+Q *8
M;FNHWT$]F&H0CGJ ,@O$!3\MYLL-F/9R(+%7;?6]/YV^<J#B0%&Y/._GIK4=
MA=MZ-U5*+I2=J2<+8JPQJA"+589*F6J293C3$I1 <+#ZR+IHVQL9YEL=TN_F
M27E3!5,OV];AX0<YG20@D$MTN/:D#M!)LEZZ.Z<?@@F/5/-9VYS[Q_OOHAXD
M]Y$]JEF1L)*7.$4Z25*$)<:(4E*@E,5)(5.6QMII_NTY &.GW[0@HRW,R )U
M$ZBS/.F7J1"4PL0*2*2S< U1TE.S8EYM1,O\L)>HLPM.(E1#Y&SE:O YOW/I
M<*K1&U;-JR]/:\7DI^7O;#VWLV!NC9^=S(RMG!:ID$B7PHA<EAB1(R5#L3&O
M-5.2IAC4_<H5\,BB6 ..JAIRM%I&WUK8T=H AQUQSJQT._W&8!!,@H]FBC7,
M^K)CUA:/Z+:/6>!C$TIYH!/5&>RDARV4&2_/8?#['A[XM>%E^OG+OZZ7LO[I
MS:?6SL,Y)7E69,;?-DXWSFS':1:G2!1<:"QBG1?,V?T^!V5D#6%A109L7;3=
M_/+F$\#G/,L<!W<[!,DPF3])K4][C[-D _SL$.3[.=FP38>YUD-4]?K59U^>
MSJD>PO_ HQY\V,]LN54+H[3D9[;>_+@S?D9E2S)7R[8:A!5YHFT[(*YL0:O(
M!>(DUT@5*LMIP5A>@FR57F@CJY\6=E0#CSK0@?4S;IQS,TV"\0.FFRY@!=@&
M<2(QD.'1#VM2:\.)[)<FAMM+GD4 XD')YX7ZI-\O-\;U^6,N.TD4GY:_J-7]
MFCT]S,6U,6JJ7U?+^U_GWY1LNA7>+&^6<OYM+I_9HFTJ^M9V5EC/5?7F1_/C
M#]M"KNX@9\R5 O.$,L13CA&F*44D)0DB1FE@K<I")\!6H%.B#Q$\KWZ%6V)L
MOPJ+*5I85*,&5YOIO:>&+2)+$##'?\J]=M-T/^O^ 4,QG8W;8V\]N#W^]7Y5
M5\W&_MK=V/DRVI.QZYV\(\1N?$M*]+49'CM*4\;7V(I06?93HCYM(OTK;,I1
MKOQKX#!225MU+J^_S=Y__]TFNU2J.I/ O_W[Y_5<J%G.,994263G[R+,!4><
M2XYTJD0FBRS))0E:MQ84_;'OU%M8$]6GA=U9Q]/KI]TOX/GE4&E6#92:[8K)
M=C3UUI-MGXIJTB8L)!ME2Z:J%@N+_,]5$C;*QH#KOL;!PN\T^V@XRZJ'3VOK
M^;6_7(O_>9Y7\W:$B_UDU_WYT_IE<=I;@[ YK-=-6Y4Z([893YK,2,RSK,@E
MHD4L$2:)0JR,$T0I55G&\ER5.>3H&A'7D<^I%C4[I_S)X&Y':34#"_?87^T^
MU+NFZ>9QU537SG<TV.YD>R)VR?/S9BRP=][\F-\#MX/N)]E=V*G6V5B+=K3]
M_;J[L=L//W0W]JAL.GI[N+%MYG]#0KC#:P(V!SJIQL1TTF-I I:_/(.F .EW
MX+2=19ID8N.OV6XC;> ZY42D/.6H9'9&B"@D8EFA489)6O)8J!Q6R'@>U,CJ
MO@8<=2!'=?<:OV!_#\/<%&L8-L#THB\'P.ILF+A VJ@'T*3*9)C@E[K X8V?
MK;G/;G)@M[ ^+V52X*1$.6<"8<4D(B6AB"BF%>-Y'G-0%>2TZ(]M83[;&UD;
M'&Z4]<_2F>?D3@:*?+S:_H2/?(3IL;.CR_SXXOLP6NN'U]FEG[YUSDGD?ZY@
MR"@;,UT3G%XL_ ZT&D1K&]\LQ>I1S=*XD+'*,$J+,D>8Q1SQG*6(<HW-;YE-
M4YDMZSI6>>=^]AQ#<M(_M-$_1_#< ^:-(JF:)&1[\Z?8>KGMBVY>-+^*AV;*
MC?JF%JNG6@UUFJ7_[7_%5Y']OWWF;_\KN4IQ_O?F=686:+([;)#C!S "<8+Y
ME!J+/U<IPKI0"%.-$2UX@9)<4)S;[IU% 3GQ/;GN?RHW2GH;V)G7("_FBMOI
M>1FML!.N(7,;YKCI)Q-\PIRG)- I< + I)KZ/($OM6G/DQ?-R_ZR,6)[O92_
MFLU8G)B:34F9:)(AD:=&&(V=;8QNKE&2$LE3+!+"G(9+@*".+)HU<*_)V0/,
M<A//X"R 2>QV\&X-OU;E-0833=-VHSKL3.T!F*\Q6=N-#6?F:SN^?/&\++.N
M^>:THW!N'I]L$&$NVD;[^U0LOX%9;HN/K E>CGBRU\L[M*P']1(Q[Q%9CKSL
MUR"3L!&F3< <C+X&32^[F"4A9F0Y0GRM(5DPAO1,R0(NY%L;T'@B=A3@W@]I
M==Q,YB*3*LE13'*!<"$48B(UYDFL8T'+7 C)8#F^O?!&3\J]/>-W0:L"^GCF
M9I8$XP-,@1PPH -X:XN$K EP(#!834 ?K(EK AS(/JX)<'G)I]O/\M\_'E4[
M[*,M*8LEYMBV$(YI6B"L!$<LYSG*.!.QXK'*A'N9X0D 8V<BUA"C%B2DG<T)
M7O3+:@@*8>)Y2)Q/)>$I*B'->BZCUK-)C]N6 GORG*>DOQ?/B?<F[,%S'NO#
MWCL]SWGHB8_&X%B\F:]LU(,]J6=C9U3MEX=EF&BN"))*VUZ(/$9,I0I1GF*-
M<4D5<1KG,0!G]+PP SAZ 1D@5CT,<M A8<B&J9*3%/MHE![2 8HE# O\](LG
M*V#Z9IC 7K73\_ITVF>8A@,EY/"X9[!T]?BX6G9:OS894;,R)D42BQAQ$<<(
M,Z.+N+*ER@3+(M8JISH&A4=/PQE9%S507_1DOC2M]!S+'(.DES,"&!9M>'#0
M>_DJ> KF %FAXIYGH$P;Z>PG]2BV.? XO/584T[6YLLEE&=)DF6HH E'1M41
MQ+-"(<Y8J@N1,\V<[A-?+CRZ;[&I8V:@],$CXOM%[A*2H,Z$&S6@9F*G4/=J
M(G:PT&3-PTZAWVT:=O+OOH?8TG;#;!)[;^?5G_OVF,E,"()U(@ND*94("R,J
MW#C>*"4B2X4F91[#+OIZ@(U^G'5 1VL#&]YMUXEGE+,D%;E$7$MS^I-2(%+:
M\2NQD(7B+$YB8,.!4%SSBD5.QC=7$R ,+Z!V0)<)MS430K;GA5 7S!SH 36Q
M33!,]+%AX/".;P7<1E6W2JCY-]OXX)?UJJIFFN!49PPC@FUS4JXH8JK(D2":
MJJS(!2W4;+/:L(6;2)\" E* .U#.W^$[^TJGF(S5I?+0JK 3O'$3W$LIA@EL
M6\FRO(_V(*\BKO1JK:+KQ6+UEYW_'IE?H[=K)>>;Z%>#3\BJJO/4!BN'.@%B
MXCJF\T0>%R#U/.OM?C\]&TO YC#6-Q';1MR8)UAIC:@N2G, QP(Q(A42)<ZT
MCFF64U!=P!DXX[O?-=2ZXM/C]N\<=YP][4MI!GO:#;D[B"/T[AZ@*IRC?1+*
MU(YV'ZDG'.W>QSV"]75NXLW2J-C')L=[.VA/9-RF+G.D-=6VK*]$+#,_*5DP
MF=@NQ,1)/GNAC"R=38;K? _WGX!0]5G..,3H0] +D\R&U Y(\/C%?J(!T?D0
MQ/O%YH^8$"@</T11;S#^[,O3A>*'\#\(Q \^#$].O&FJDN_6\O-J,1=S57U>
MK\2U7#UME/RP8/>NB8B#"XVL4%KXM@-F/?!PBT6= 6-14;(>^=EBY)YR.,RA
M?JT3G#DP[0/D2_35HA,HA="9;*]TP>'5)TL-=":TFP;H_I*?>7\MC*)^KNN'
MWJFGM3).:]V!5#TM5*T]EO+Z<;7>S/]=?VZ /ZGUYL=G\_79F+_M+)E93J5Q
M"/(,*2H$PCE6B.>E1H1P*20GG"CE4;(5"C\GV;FXT.M7557_C-@>YTAVD(:Y
M%L%VQLT7F9317DJJ@V'41?$JVB%9ZZLNFE?1%E'SDT6UJ:![/^CM@;V>T/P+
MY"8%0VM2ORHT,U\Z8L'7]XRML.IAEA2TC+%@B-M:+XSS'-&L8"A5&2,29SB+
M88$4L^C841,# A@GL90Z!D6 ^ ,C('VHPT,='5Q#Q37LDM,&,3I$'$4LNG\+
ME+]S_;QY6*WG_U9RIF01%[FQV7@I*<(I,S\)+I$6@N,2%VD*O?D\"^LU\GC8
M#GK 7)X.^YRCC"&8 HXT'N7T1'O (Z;U'%,W5FI/!]+KIO<<DSR8XG/B%9^2
M@KJQP9==7P,[IGCUO+E5QHU<_'BGC" ]SI?V*N(#FZ]_9XMGU8#?C2]NFT^T
MEQ;F.YU@CO-8<J1R+!'.E'$A:!ZC+,M*&HLX38E36M](^(VL1G9PHW:2:A6M
M6\AP%3+6%CD$4%^7\3!5U7;GV",;M=A&+;I1%]_((AS5&.]S%??;MD4[VN+]
MNEL%J?9XU2WS+!9YG:T#%I^,QMC^VI7P8"<L?1F-9X>5,^.!\3.6;^KN2O6*
M-TL[@+#U-@]Z,EFCW'QN_V/_]HTM[*?_6JX56]@3W?SMMOWQ%S9?5C;I0E7[
M2O>4".-9:HDD*\T1J\SIRC'+D4@IIS$UB&$.L;JG0'KTBX$=";:Y_<?5$OW&
MUG^J3:TW]E\0F.T^R6ZZ.0$_VQY![R<.MJ<>K[J-XQUVZ+N*WM8MOLT?ZQ\Z
M=%Q%>TKJ![:T1#4QT=\:<OX>N$W":^Q ((]G$I0G=9VFW(27/MBDL'UG6FNU
M7BMYQ[XW,WY^6:WD7_/%PH"],<;9\GYN]&'SIQG7LB@2*A'EA"%<QA1QQ@G*
M1,8DR3'),PF;:^T.?/3C8 O.*X$3Q$8W_3T6<V!Z>(M%W;&J 785;3&I=6J'
M<]?]G/,8;@UG0; !UP#0$P^YAC/E>-"UQQJ>?>A7RWMK5%OU=V>6N/X^KV9E
M4<HXY:FQ0E6.,"8$D2(6J%!%PG,B1)J!AFV= C*RPJAG_]7-UBW0J\B"C;Y:
MP-"^\Z<8Y*8B+B4;I@I\*(;WF>\A*52'^5,@INTMWT/D45?YOF=]S_Q'9EO-
M/*VJ^69;S)_0A%F91)+0&.&"%HAQG**2RESS)"XH<^H+TP=D9)%L0-H$C!HF
M] 0_P137D_HR4J$G\F/3O:D!-T(Z=Q\]P8[7$R F/D;/$WE\7/8\ZULK_?MJ
M\6R.VO6/#_.%^:[/""M5JG*)F&;<&-<B0T1G&B5%@DO%BU3(%%8T_0+"R-+7
MUAOO@$8-5&@5]4NV](M@$&*!EP= .CWJJ\_0<D&A]<L5)ZZX/D/0<>GUN0=]
MNQONAZVW&KW0::)Y8<>\2N/"&CL3$:PI,@=<3D4IRY([2=EY$".+60NP'H/F
MV"&UAQUN!]QE1,+$ZX"^$0ZW\[0$ZT9X!&#B%H3G"#SN.WCV2=^98\9C5)^>
MZG%FR_MZ(-*M6JJ_FF%(LT1AB<UYAF)"2W/$E0EB96Z$+T_CQ+8)T25(^ ;@
MC2Z)-:3(6N?046/]?'+T_L)1#W0$:\!V3' +.JIA7T5;CMSU<<1C])@3G<'F
MC_5#FW@(F1/IQY/(W%[SR/^YSN/D[8.JV)-B?ZKV%!%)EBJ98A27YBC%A8P1
MDRI'HN22IP6GJ=3.&3RG((PLR09BM <)R-\XR8U^Z0U"(TQ>#\GS:0)XDDY
MILFE]/KEBCAN*RRWHX^4WNR,DR].EU_1A_=!AD3O@_Y9[\=77+_.E^IFHQZK
M&1>I3"3/4"RI'?XD*6*9*A Q6H25DJ1")-"$^!YX(VN3L]?1T5>+0E3C  P2
M#W'0S6((R!>8!KJ0)5Y9^@Z$!DS@[X,V>6Z_ ^FGTOY=7O-3 &_8PO:%^?*@
MU,8.4JDK;NP]AV(B$6DL4$JYD?S8. ,D9@QI6J9IG,=ES$ M/<\!&EGD6[!1
M#3?: O:Z#CK+*C<1#\$ F&S7 W+JQB(KW1F]_GG5C,#><>,JVG(I])W1$,V!
MQ/PLF$GE>XC8EX(]^/QE>2/-=+3CZ5PI+T4BE7'U2^/OXZ1,$<\3C 0F.3&?
MI0G7D,9> _! \NW;XTMN<R%X ]0O1>0<Q]SD.R ?8&*^2P1I((\]P<R1SL#9
M'N>@O4J"QP#IYW(ZAE[SD_>Z)822U0>#[A=C''S27QY6ZXT-)W2RW&;&B!<B
M+BE*68P1EJ1$A$AI#'M>4I)DYJ\*<IZ[@1WY=-\BT4Q?K0P:]JBK+"+(!O^B
M^1X5F$YPY*J;:@C/*YB&.&33EY9--0Y-VLB- YO B@)&=2!]X0AT4K4!8\1+
M[0%\VT^)U(V*;$NTM7HPJFG^337*RJ:T?E2;3]IHK<^V"-^8*)O->LZ?ZVS\
MN]5G9D<QSDJC7N*TC)$DVA@5.B;&J) 92N*2D"(F14Y!<8(+\1E9[32]L407
MO6C1UTUS%)Z[Z9X).0E32@T3#S#;6C!U]O_?KR*#GU54!L.KJ,4QZB(9;591
M@V;@6<N7\ROD8.8+L)E^BO/EK#LY\CG LGZ:L:XQ>\,J)2T*!G[CIZW7YKM<
M.]=O?NP?:2O0KO]B:_GIR3Y8_6(>M$4&G]5ZOI)-_V"LXCQ7N$1"%<+88IPB
M7N9VF",M%$]DG.2@V,H(.(ZL06N(E[1B&&-;W!3J*S,;& *RF* :E:B+;M3!
M-^(_HNYS+<Y1C;2]2Z[1OHH:Q&W-5X.Z_21H"^D1.1M('8^!X:0J>D06OU3;
M8X+R33K[II;/JK:DWW\W6FO)%F^?JXTY2]95/4A\>?^K+1QNRBOV=S@B+E*E
MXA+E*3;6;:P2Q&6>H$*72A>%3 JW!-!+$1D];:9!JW$3MXA%.\SJ>Z*ZUJ!&
MKBTJNN#NS'M#W#3U%&R&J>,Q.>R1;W<9>X)EY7FB,7'NWF7,.L[PNW ]SQ:C
MR\U<SA?/&[/TOI+^_7>Q>)9*6F2:ONCM<//W;+V<+^\KHX-K7;V70)J4'-L9
M8IP:PQ5KG"&2\ 01%C.1E%F9N@T2"XW8R"JRBV:WU<D6T4:P.ZA:_W6+K+6;
M&DOK IT9; ?==.AK[ M,ITZZ)?!6I('Y%ZH5:2BTIFU%&IB91ZU(0Z_OJ:2M
MRK]Y?&+SM36*WYJU[Y51N5K$1$F):"(4PB4S/TFE$26*Z!)K*5@.&[-V&A!$
M5+T&K-5@H_D.;FWUK)J8:H,"4"6>YA>7*2&$<T2TX1+.M.%76C#$"">4\ SG
M%%0W>3FW? Z<:7CE>!A<S &@:J^)WP.,W@Z0#%?/O12%4K:G@4RK.GL)/5*$
M_4_[]QNX:^NE9SG1K&1:H!3G N%$IXAPS%&J$TI+R8HX8Y LE.[BDZ2<+*R7
M5M\Q2P,2WEA@QPDWT?.E#R9PAXT$PO8.>(E]P)X!NZ4G[Q7PDJA3/0*.GH$/
M??F\K);7\K^KS^OUEV_B;;4=;>8XZN7,ZV,G9]C+&AMJEO_]O&T8]GD]7QF#
M6ZV_S84R1GGE*#E]3.@7H$#TP^3(C?2 -90.5'J-;#FWYF2#6@:(ZHYG&7K4
MHZ;JBYVWJN[GXNUJ83Y<-=-7K^_72G4&#!+.:"Y9CK(\E@C36""JXQS1,J.*
MXEBS(G<NLG(".;+D[G"(#I"(=E@ "I3<6-@OP^,P!GB3-L03G^HM-^8 RKF"
M,\FOOBL LV"U7R"Z>XO!W%::KCH,1-E!N1CL3>^15:OG7<O=W9S;M\_K.D5)
M"1%K7"A4<)$B;*_0*(E3Q"7CG,8JU1R4=-H/;FQ7O 7>=H&WT,%3I/J8Y>B#
M!V,!T!??4@\9+WT5M7@%G>WD0'^XB4U]P*:>P^1 ^(GI2BYO^5ZH5YOU7&Q4
M79VV_1X7*DGS(N&(28R-.62SF[A@]O*\B"6F*2]!<;>34$:6]1:*$?4M[$B
M!RV=9H^;F%],-$RZ]^#J0M 1Y+:7H&!7R:=@3'Q/W$/F\25PW\/^(Y[4VA;Z
M?69/:MV:D.:<53JGQKO#E"',!$&448Z2LHASG6:2B PZW.D(RM@RN8,9/5F@
M\-E-QWQQ$\:+J84)8X?0&MXX<^'/4Q1P1M,QC,FG,YTE\]1<IO,/^P7MWBSU
MIKJ6__UAN1\2  C:G7A]HJ!=6YM6=4-85]&'U6JS7&T<[=X^)K@%[2ZDWR]H
MUT]ZX(D$#I1Z!^Y.K3EIX*Z'J)>!N[Y'X:)77]'4=_(/JX5YY7:S_+WZK-3:
M&+_/3V!1=%QN9-%L[ITZ:!A7;/.\7D:_VS06\VN-C;MHNC)I6%1'X ],=-U8
M,X+H BGW$F57&).)-I#HKJA#7X6W\'W7!BROE\MGMKA53ZOU9B:R6*9"ETCR
M,D-848J($ (QJCC%LD@P<1J/<0[ R)*_!1DU,*,&J'O_WI,\Z1?K$)3"9!A(
M)*AY;Q\E7KU[3RXX6>O>/G*ZG7M[GYNX'.YHNDY=UG?WP)9MO<?OQAFV/1*:
M>H^9U#@OI<R1*FS-A1 :$9PK%..,Y)1IF6@Q6ZI[VR?U;H)2.2#^3G)"&SDY
MHL)99AJ8KU!%!]U--S_[I]J<UZJW.YZC%C6ETAM#SKX:K]WZ737>3U"&Y[D+
MKUV;!T7[/Z-@SW,S@E7Q^<*?^%C:S1*]KJKGQP:SVWGUYX>U4C=+8ZL9+&^-
M=I[10F0D913%(M/V/)*(93A'"2\3JA.9E Q4 S@ZQB/;I!8DT@:F44$-T,A>
M-T]T_CAOV\@'SQB;,?F)LQ_%''7(N(HL(9&E)-J2$MWV;?%T)PV4[:]]Q#CC
M^Y]QMD#9'^Q0 0/VO4-;;M9,;.P(ZFU1YJ]SQN<+<Z3-5,8$H4F&)"T9PCHO
M$9=%;'Y-4AF3#&<"U+VC%]KH=VH-[&C1 IRKZI_[=HKKIDH5>M/6QSW7&[=
M/('>O+7L^,O W95E7T4[T"%OX!PH#'83UP=KXALY![*/;^9<7O+([_WM^N9E
MLB4E9:IUD2#-2V%OR@O$C6V'"D93*HN,E]3)SCNS_LCR; !Z9>F>8$2_H 8@
M#R::!Y3YY-J>(!&06'L9J7Y9M&Z;"4N4/4]';U;LB=>F2X$]C_-!OFO/8Q<E
MM\Z7]Y]7B[DP1^,UKVI%--,QY>9_&=)ID2-<) J16&7&&E 9SS.%.:<>B:TG
M0(VL,/: HRWDZ.L6-K0UP7E^N9WZ8;@ TRN>#/#-6^VA+6S.ZBE KY&OVD/P
MF5S5OC<N:_RT^SJF-.6ZD!@1%5.$<TD0LR=]27*ARIQ+J8"E]"]!0+ZP7D7T
M6X#_]&NYM&-%KLJD3&P; 6T8@'.5(II3@:1.DI1B%NO,Z6HT!",NZ5GEJ[2.
M&.*FJBXA$Z:@(!1Z]X :21<=+?\J/9N&],[9YWP',/#-/N[]KR5[M,U)_ZWD
MNWE5*[@9+0M>)#A'I5;$6 \8(U:FTG@;*HYE+(DN@!.]!R".G9]@X$?S'0)7
MT?,>A4BV.$!G,@PQ46D<YQG/D%!2(2RS#/&<)B@CI<IQH:7"L<<%<1A>7GRS
M:P<%_O.0CS63J^JY*;11P*C,,$/=%%_0[QI,$]9?LYO.UZP#/7HW]#7S&'3A
M2&FP41=#\"8>=N%(_O&X"]<7/2(VMIG"KRNVW)9>QT3FI60HS[5 .,N-)L4Q
M1S(AQ&C1,E;,J<#PQ-HCZ\RZRX:%!@AAO"#>(4+C3Q),-'?4^$1F7I %B,KX
MD^<7D0&0"0O+G":D-R3SXI7IPC&G<3T(Q9QYQ'=V-:OJ=-&;QZ?UZEL=WZG:
M[TJ:8D[2(D$ILSV^C!5EYU,RI%-9XKPH6$P);&[U65@CZX,=9-OL:P<:.KWZ
M/*?<3O= ],.4QY[T+M01JIX<J LVJ_H\I(GG5 ^2?#RC>O@5CY/[X[-=X9-^
M\US-E\:Z_:+NZY5G7 G)2"D0I\9\QZG($<&Z1 774A=IK)EPOW$Y!V5DZ6W
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
M-D;3_)MZQS9L&_'.XT26>8*1S*0Y7GG,$"F3'(E,9GDNF?F34V!Q"-#(@M&
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
M7'&VWQIZS_4@+[N/M&-QZNJRW_%/U8WL_</C:OW"^9<GLCUDMB6[:9+Z@I
M1%$2JP+G"!"6A<"/,.5Q1K'@^J,1I^-S8AVON0(U6Q[=[[Z]UVS'(R]U#Y[N
M<VW]M(>5  OOH1'!XZT,7K4GA%%":^I7WF^"?J$7:6;)]M_A80?UPW>X_[EN
MMM=5\PY;[KV.?6^??^_J%WJ'!N4QO\:[M"NV>>UW:E;-,SW2O;5!$Y*?K])H
M>@P/ZI9F(&=W+KTNY#[$O^*?[_**KM;54\FW:= TX@R2@((D8:I#;IJ!#*4)
M"&/,8AK$81(;30[JH37QOMM0K@.<.]HZV5)CS/1.KXZ0,-NXK$$P/M%JB.?H
M:-M':=8SKH;(QX==G4<L"[K4P+?/ZV);\-20ZAJI^C%*2<($$"A!4J\S#+#
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
MS'Q>%Q\EB;9*X1VO:)G7?8!VI?6:=33#*TVLZY(!\/'JZM;K2E3V>- ON=$
MI%^AW6-AILY],#B^3V FJE5)C\;RLU7ZZ(NZ7P!D\-2$K=%/6G^]KW>]ZT*-
M>&B.24?CH^M__YVK@:B<73WS$M_SCW+9S3MI@[:-PY;<)S")_!2(6(T@33,.
M"&4$Q-#'/ L@$8G6Z*M?0II9O!&5E&'KU0J7E6J8WB1H-/,SOP1*+ENL_PIO
MTC";-+Y/9".CMR>DUWPU-E),[Z9K&UG_;.%ULGJML%XMK:?$W>LX^>_T_9F@
M[_NO\#V:L$O\+_1]FJ:]_-3OSTDS^LF8_/5:UT_]/JP:W4_.E,T5S-5J_4.5
M7'Q8EU]Y(9>^?G@LU\\UW]72#T*& H% A#(?0!2D !$&@1",9$R$*$ZU*@0U
M:$WLO&R)>V(M+4M-WLOWZ)O<.>P'3<._< >%V>Z_0T$2]AK*WO4D*)C<NW2&
MAMT>9H^*X<U++3G[[UWV+S'CK4LM60[O7.H]8A<:;FRI,L#K0B[7CMY.0AZQ
MR(\ \KFT7XPQD.&  0+C.$28(H&,>GJ>I3)U]4OC'FV)6@XF/P^07G1WM-AF
M5LI<8N- ;J]$CJ*WYVG,&K+M%?,X3MO_81<W$&YQ>5-^V:@H<.VYW/*R]HR6
MD8ABXF<8,#^C  9)!@BE B D""<ABT)NUC=/B^S$BGMR(^$1E]YS/5]A3!#%
M$%H]#7</F)G*GUQ2D"S(+YK7,-%.I;A5B1[%QU07%H;DGN3BPD6BKWB!80B(
M_HL,@T_;'%2@[]_R8EW1]:;-3$(F3426"@ A4MUA4 2PFL6=17Y&"(2"0_U"
ME=/U)[8.DI[7$33QND]QT#EOC)+.3)7W!;/JZ'(JH<E98I2D=N<'K5=I>%2X
M*$;_\>#TL1F/!!=Y/CP&7/Z831=NZ:X\2?53SLMC'5DIV)>UV/R0]J;]]D1^
M$B,_E/Z_'ZN[-#&6_K^?@223$OJ9'PNF/RQWF-[$=J-CH"[\J#FHNTI5+0\F
M;:Z'H=,P+6X!,3,U6RS>'V#1D;?J_3T,BDD[<*?@6'8('PN28?]P;9'[6XH/
M+S-CEW%MF0X;C^L_9E[ZTO6$P"OHA\_GFDIJ5KX,+C1U9'9+WY,,_/;\Y[T.
MDOJ%+\-P]-LRYT@8!F9[0)B@[$5;4JNJE^'59RMZT19TO^9%_R';VWI?OO/5
MJKMZQD)?Q!G, (D147UU,< LH8#YC)"$$22HEG]R?OFIHY/-!;6:HNV-O ,T
M^M5TO(R&H4@3\2QNW9V38L1ENX/E9KYC=TZ4TZMU9S]EJT;7!5V7C^NR=HCJ
M@,/;]5.Q*5_>KAE?$IID#/$0<(XC &'B X(R#A!'G/B,IQG4JNW2I#>/HAVP
ML&CB8RI0UC+B*4Y,]:\?1EV%= :.E8:.PL5"<;6D':')_>O/K-I:PI[JNMYC
MMMU-Y'+*IZX'>BVCB&">) @PEB( .0L 0AD&<<S4I8\DDSNL6;^,_>4G5NTM
ML7;0G&%F[P@*O8"_O8!FZJDOFT6#BG,B.&M$<;#XS TGS@EVVECB[*<,8VB-
M0BZOWR\CGE%*: PB@6( <1@" E$"PM3W8Q]%D2_T:GVV2TZL-M=W[S]=?7ZG
M&=S9"3H0U+)BWTPIACC7C[B<,-NSY;0?;K[][3]V7_R]I>8)K)RPOHV=G/[&
ML@MW(;]5O-JHF>!%Q=4-ZR7+2)B&"02(J&"P[T- &,,@9#YE5$0A@T85(6=H
M3/VU;REZO"&Y\)@D:MA+^PPR>OO&2'D-]:03]7TGZKL^4<U[8E\6QE4'[#,4
MYNUW?5G$D^[6/1\U4\"JW"QK5X^7C[C<O'S&#TT7:,QI0J!/ <<P # (I!ZB
MA((TC0,>"A8E7&N/N41@\MS+CJ2G: [UD=9#I5_S7,AJIG;&8FHKWI L?5HG
MG]W3./FOG;9=7'8651L2JM.SP<]9NFZ?ER)"S&<8@12E"8#4SP!&20I"1+(@
MAL1/J=[HX>V2D^]A+-?MR[$34]-Q,V+><$/Z_.[ZRJ';]KGGBV_HMGV>V6W[
M?/SU/O.;<6[;+<[99[Y9)MA' 8\I0/)0 B","< Q2P$-HE >3$C(Y<,6+EN[
M_ESNVJ,D9^>E=4"8>6@6XEEZ9XK20OIH=/7$5).ZM_@QW^!5W7.Y^]#"NWGD
M*A(D?W]%-_ES?Z\*:U?N2&K';ERW^JNX<$>B77+?CC]FIX3;VT77Q>/3IOK$
MG_DJ: L@>,8C@M,()##- "01!EAP>9J*!.2,QY@&6H%U#5H3*^?NPJ!JZZ^(
M+[R:O!>8J6H?7'IJZP@$,Q7ND7^"[BD:(CK2USY*L^JNALC'>JSSB.V\5\FS
MW*/K>/Q=7OWSS<L;7M#OJIM0?1!) @0#$J8@BD@$(/*E8A.:JC$K- X)10DT
M*L,?(CCY<6V/O*?H>UOR1B<W;0#U5-TE+*8G.WM$+.:TZHGI;#+K +F99['J
M"7\Z?57S.8M:V:T']DF-(+E3UXIOQ+>*UQ/,WCWQK^OZ%[^O62YRVI0W9BEB
MD? C$&9, ,A3!%""?$#B-$NSF&<HB/3& ]BR8*(-5H,"NG(?CSUQ-4%I50_W
M>=ACP:!^U ;C@7/M#+B969&=)U\377@U/V MU,3"9HJA)WGROJZ;#WB_SX>E
M07'NQ)C:5>M.@ZU9">\(8'IK>FW6G:_(=X34!U6_8]:Q\^N:"93M$*DE)AE'
M:F!(C)-$6NP  A(% ?!9%O!(F7-*EINU/*#K.7$'JQMY;%L:VM_^K^J1[0B[
M9F2LF8MVB(6>/V8MH9G9;,@LNCEQ[ARML_P[\JH.UY[5A3HKUK&_=/Y#(VN*
M;L1;7'W_L%K_J*Y()9TQNEE2P4D<I!!$/ U4I[A$JA41((EX@'P4T]@L<=Q'
M;.)ST:XF9RT\1=RKJ<L#0$O?M@#I'&YZ*N@*#3.-' &$?;52CX2N:Y?.D7J=
M2J8>H2_6-?4]8Z?@GR77<LFF ZW<H:\*]B$O<$'EWZ\ET=VWEJ7"#[ ?@#02
M$8""09!1RD'&.8,L#>/0;,RL-N6I5?_I\7%5HROW6=5)6G'5=IA63J>Z&28Z
MQCR\#=1K3GTV!UK//$P"GYFM:%GPK@^PVG+AU6Q,8CF,A7=D1O3ISFI3C.$X
M-C#F"UC$6NYXQ>43W^67Y)V*X*[K"X!W\J_%4W>1-$U()#T' 810M6B(1@ )
M/P0!XG$<2R<>9]P@MJ)!<O)82L=#K1QLQX57-FQXO_W)7WA_\NO?_RE8A#!N
MAB?C[0SKNC;"I*&L#M1QE$5Q(@TX3M3L\)@G $/B X8BD2BWCC*M'/(40%N8
M\2&8':.G$:!RC(F9;3Z 8X^\U]*WN0BN@XM!L,DQ/G;!I?$XF062#(3N#1SI
MK#-?H,A JH/ D,ESE@=8VTZD;;_1]S]Y2?-*W2?X_%1_P\,H2OTPB($?J8$J
MJ5"CYU(!U-3@#$<!0MPHU>^<PXD-;4O6XSNZ(\;2.G\]FH?KUP3=\$0^OIWT
MMF'T'ML+KV'<X7%^*DQ=Q0"<\S=OX& J>$^B#9,1LC@T_"X1HD\K7*JHY@-9
MR8/W=4&[TX(0E, D!"0,59%O$,K3 A0@$8ABSE1X0BLD,4AI8I/Z^]6U@1O6
M"XF&7^I*4#,SMJ7J[<BJ"BMJ-8>O%P,#']05%G;.YV5,''F;.N+UNIF]"\SG
M7^K(<>!8:CTPT]3BKQ)AOB2")DF:<" RDDI;E:@<) L "2@)A> QD1^:<FQQ
MS<;$ADQ^@=*)YQ8W:.IY>=-C9&8#!R87U]1?<73Q@?2O-;NX8>+7'EY\ -3H
MZ<6'J]D9)45L-S6CZ7I 4C_C*?8!S@*L"E930%(4@2 6B' <0!YK78'JH3%U
M:H9^Y^Q)GB_7PCO4G8/1.%8M(LXAIF=51N)@>/IS X&Q\>@1TI%E.$=A5K7O
M$?%8I_L^^CIQJ7KFC?1I;GF9K]GPA"X4AZ'(,@A@$@0 ,@I!EA $:)K&44)C
MD9AE;V?F?V)#LYV@A=L)6O?U!"VF.B8)=2'$78_ZN5_\//&P"5_GZT7+&J'4
M@.E&K/DFK;WR:_E% FZFW/];A>,L7XWK8)TM&V-&$GW9#F;_>[[YOG[:W'',
M\M7+.RY-]T->J.UU2_'J05VB7B9IRE,28A!C@0#$/  910(@YO,LA-R'PBCK
M8LW)Q#O1;A2X^\'V]NCK;2*S8&JV';1SDW8\>3\:IKR6*V^?+6__\F?#FNOY
M2B/0<3J#R8:/5YC3- *N\[.<QBQHVY/U[WRU^I]B_:/XPG&U+CB[KJHG7BZS
M *(81P3$42P/Z'XF;1KA$/ HB&"69%D0:;7^&:0TL<UJ^XTJXN"?BKK7D?<:
M^J;=5R\!UF^&G,)@:&:L$;#HLSH@W8@.JY=6GKFWZH" IUU5AQZPR#M^XE7%
M^>'%I2:;>2/N>,%_X%7K02UAFB0IA S@($.J]T,(, T2$,0\B8,X)(A@[2RD
M/MV)E;HAJL).Z[;@8[/V^,\-+UA['5093(.4G0&B&DG,:7 R#.?7/.RW<6DO
M*+;8W0BO9:4[4TX#ET&^<QK8[+*?#N$SRXJ:@]";(S58;KZ,J;F,!_E3B\=M
M.UO1]0/_BG^>FT^2TBS.(AP!Z15)RQIE%* PYO+X%]!0_C]-0Z-#7Q^QR<]U
MBK0G:9N>VGH1TCN8N9+;S#SN1)YN<HN)A,X:7_60FKD+UK#0IRVQ-)ZQ+(PX
M8S,^Y9CD*^FBM:&GZMT35SG/#_)+LPS\F!(_D(X3I%2>?V  ,*?R#Q9#'L(8
M4[,1MZ8,3%\,D1D60Y@BJ*?^4^+BR&/:LK-0;B;A;0.]NBQ"L>2P*L(2#%?U
M$*;DYZV$L 3GI ;"=AV+D]IG7FU6_*\<KS;?O]"<2T';.L PA#1 60!BX@OI
M/K"TL2]4GL@832CCH:]],+M(9NISF*+[G_\11M%?O(:ZUY(W.$Q<QDCCJ.5$
M<C,[<5EHFV+1R](;G)R<H&!W4++X"I@=B 9EZSW_7'YZON/.H 0'IYOA3UO8
MH2]XQ6]$/>W[[?KA(:\J^8X_<#7J6[4O6X8H$)F/4I 2H1J#9A@@CF/@QQ'D
M?@ #1/2&B6@0F[HN"S<%254SF)YN.?"$VMT?&R8,-'0(.PTKY1 1,UM5@W$C
MO"\-&#OBW@<%QJUS, R,ED-0[$S72'#,S)BFM+W&;&B-^4R:IC0'ADWW&1OS
M]GU=;E3QX;="NG$KSNXXY?FSRI=5[6Z*N1\% := 'M^DA0M) C*4^B#R*0M2
MC.(H2?0MW""]J8V<8J IM^Q8\/9X,%'H8>AT#)Q30 QM7#\6-DZ9!B@FALXI
M.):VSO(+8VCDM"7MMW/#R\QHZK1E.K1V^H]9%ND^/3S@\N5&[$ZRZZIZB\OR
M1:Q+5455[4*Q,*01)#X%D"(UDP&K:!9+  OB"(DLS 2C1A6V!L2G-H5[1>@?
MN,0/K[IYHG7'GW7)\_O"^WSSR3O@K_EM\X!WL=.""A"_+3G+31L;&KT>O5#9
M5* ;FMN&"P7W7J1,,G($;U/U[TT24;=!PE7=J GI>8L^+4 YJ=BT6</.?MV4
M][C(_Z_>QMZNBVJ]REE3'UJP6_G]Z[:X&]%V>\*K;:NY73\R@GT<HR@$B8BD
M6T=% ! DJM=C@I# (8]2HZL#3KB:V.+M\ZB.+7M<UO9KG\_:*G:<>CM6K9M'
MNGEM>@9O]I=A9@GG>@_&YM$I;H[LIAN>9C6H3F$\MK1N%[<TP0<YD*/Z>I6#
M516F=Y)H%]U!F/A!X$? IYEJ+Y1&@$#.I,G-TB@A 4E@H-<!SY8%$VVVZHC7
ML0"ZVU:L9<*3?&JF-:SQU32+$V)F: &/4Z4G=Y Z=CS%C\.8VE@L7%DU4_+S
M&C!+<$YLE>TZEFU_^49U$KXMU\\YX^S-R[>*L^MBV_1S-X]NR<+(YR+) $[]
M#, D% !GC$N#E"200QZ$/#%IGJ]/VLC',^^L+QGQZOZUCRTKZE[@;T_J1F!>
M_/ELSU_#EK_Z(.M9I6F@,TW-;IJ^X+?[J'WK4-MU_YUBI*$Y *X:_^H3GK?S
MKS$@)ZU_S5>P;5$A>%ER]A7_;"84J"*T]F?M?&T5(BJ?>27]LRM*RR>\JI8X
MXE$F. 6,!"F L4\!(M(S\@6*<)@BU<36K(N%#1L3'S<[BO69!K<T3?M96,&K
M9WBF!\W,"'6TZ]AA-T2D+C3M?M%RM? .H+T:@M:B3\889)RUTK!B8N9N&V.
M.FW(,6HURV&1=9#Z Z9U&5L]W3 3&>0D8" 2+  04NDF93X"& J<A9%JZJ55
MU'&9Q,26IR'H=13M9D">XJ)G5L9):V8R# 4U'^UX4197PQQ/"<P[OO&B@"<#
M&R]_TK;E7E6]71?J>,2E4\*K-R^?56<M?B-V/VZ^> 32@ F"0(H#'\ P$(#
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
M /L!!!S2D 6^[Y/8[ BI3WMB=^^ ?MW*IU5VP[9V)FB:&EJG&)F93@MX1AA
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
M!G",,9#V* A]X4>)GXRJZ-R2FOH8<6:ZDJ+MU<3'5G3N -.,3CB!P?#<88G
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
MSF].<LYU X7KHMJ4=?RO&=/Q]3LN6BOT42ZQJ:Z[F@\:<3^)N"H;9M)>""1
MEF4IB.1?>:QZ3T#?N.AF!L8G-D/[5T@.W$I\6$%2G;MJTC@R;2N+?">1MZZG
M]&RD3)UCNO#N:[%4+PSKXI\YOB=Q@DD"0WG:B-2<1S_. !&!FF$=<!@QQ 7"
M9F-7?L5OBM6PEIJ<?/^J0U'35]VP+=%L+U%OU_L57XS]J<.V_JO1WCUAFCE3
MC?;>=-K[<:N]DU2)S?@67!:1S<'V_#5F,[Z,LR5H<]*WR&"_XV2S(R1/Z>5&
MG8#>_\PW'SA?!C$A(E23@;F0C@:,"<B"T >)0"A-&/*34"N!I4%KZMH3QO[;
MPQU-CTNBGN":=\5UH-+(?;L#P,RR*KI[1K&.QK0X*-K>!Y<X&&3*W>%AES@?
M@XM91EU/TMX$^\ 2\^7;]60Y2+]K/F)Y)0OG93V2I)EP^#O'JA\"NRGNN$I!
MY<6]Z@=8[3+*?AQ'OI]!0",$ :187<-*(. \HMR/0A1GR,PK-F5A<N_V"_W.
MV=.*>S>B;N.R.&GF(K_L!9.^E'P5X"LO'[SK.DYFT<?+&'\]AW9*3,W,I^*D
MFS/4,.-UW'@JV-/Q4[?ZK+P_OJI+/--$>&Q!<75!RY3\O#>S+,$YN9)ENXYE
M'K+V]KZHM>OLIIJDOG[:W'',\M7+.RZ=G8>\4-^I+6/U-VP99)2'<9J!#(L4
MP##E@&0T 5' ,Y^$&8N9413(EI&)/;?V4+?CJVXZ*AGS6LZ\?=:\G;:VFF@X
M^,#Z=6BF!F< V<R\38>O>59O)#BN$G6V;,R;>QL)UDDZ;>QZHX^?UX6D(9T0
M>196"RNW9*F:+/L\C0$/<*+&1\> ,,X PDD00Y1FF4'7HT%R$YNR^L"1[QTX
M\I8%%89NKG\KE*T/8^< -#Z7CH1EY-&TH^[==HA\=8V(]0EU)#*.#JF&"(TY
MJ/8(;'!6/;?*:QU7>R3J.;'V/65S;61=U)?XE87M*M.[\K:7.[[!><%+>3!N
M$I.*XBTO5<X2WTNO3]IC'(32S?/C2'I]/@(HRPC (<H$\9&0;T/_CLD(3J:O
M*:A9:UK,TY:YQ;:<]&7AE2V#*I"W\.B61Y64:YDTN?(QYJUH6-FYL#8N7&A@
M5FQY;[<P?]K!W/&FXF%=54,-\^WL,)M<PYD);LL[.]/";GC?QP%4_9>#QA"8
M\2:1 QP.KQVY6'!D5+0-7S3;V./3IMKUC-V%Y$00)$$0QX!RJ$K1U"CU (8@
MBA#D2<:R5"26(5$=^I/'0_<.K7O\V 8ZM2 UC'*ZALDVQ+F/3WV':?_?#6>+
MO9"G^L3GM:KG;G_@M@WQ*)A<!SVU:+].Q-,$EHOA3J-%+,MA5[BJ;L3?ZX*L
MS4UYE]]_WS1C-9<Q"8((9A"(E*0 \@ "DB$&!$_]Q \036-L5 Y[F=;4KJNB
MK*I@6]H2(J^F;CF+M0\U/3/C" M#U](>!O/2UV$!796^]E":M_1U6.23TE>-
M1QPJ]ON?TIO)*WY;YFK 4OO+JOUM%2QIZ*>(T QDG&4 9IR#C'$(?,;#A,00
M"60TZ\>*B[F,P8^=%I2*LNIHWG#F/2K6]CY3;3]4.1FA:/=V1I@6EY@[,CJJ
M.UP+]VT']]_WX&XXF]@BZ>(RI:T:Y.'UK9@N3%KV37LQPTB>NM!6OBR_?%RR
M@$=9( A@?B+-F, 90%2U;LLRQ&F8H5!H-??=+3FQ3?IR_?GCU>W-W7O-N,U.
MU($XEY4 9@H^S+M^\..$W9X^2.V'&[5K_['3N+VEYHE7G+"^#3R<_L9R,/G6
M^Z]G(VX+6._X2DT+5!?GJI/ZU;TR'T)Y&&*8 1&3&$"F8@H)C0%.J1^E*4Z2
MV*@S[$A^IE8I=6>PO5.RSYWA)/.1F.MMV3,B::C;_1>/)PHN.(+#U?STD=S,
M.V+=#70G4]@=+6MF^!C/E^^+3;YYN6),?DNKM_*O-^77]8]BF4E[%8GZ<FZ<
M AAE&" 4(9"BC(6)SU.!M&JM>FA,74954_5:L@M/$59^KR*M9Z3Z\.DW/(ZD
M-C,F5@)K&P\-D7J<"?ET8POD7W8FH&_-6=1:0ZA.574^ZG+R^J=U<:_R[BHQ
MOX0PB9F?18 JAP+R* #8QP@@0>*(1B)%L5'EXS#)B97S<'+X2A(&JA#(8Y*T
MBS'J!^CI.0EN,3%3W<N#U!7]IE[]71\TCD:IGY-VTEGJ!P1_@6'JYP#0FZ9^
M]DG+%FG2NG!>CS*NCKL#)D$<$,0@2#E6(\-9*"T!@B AL8]XFM$D-3ID]-":
MV 0TH]2O:'U^RXM[PUYI/1CIZ;LCR<T4O2&Z: :$5]-VQ] 0T%53M1Y*\W97
M&Q;YI,V:QB.6W3':.TDWXOS%V/VN.U=TDS]+A^)K4VZWU?8(LS .I /N^W+?
M)T$$4, S$&,D6"2]\A0+H[X7HUF:.JK0W>.26]]^=XM])A=>S>;N>GO'J6$_
M@_&O1\_0S NZTP#$KM%9Q]BDM[W<(>6J3\!XAN;M . ,P).[_>Y6GKG74,M4
MEQ79=A&H.Z-=%YLR+ZJ<U@4AR]"7OA6+. CB5-TP$PR0((, I:I0 T64"*,.
M97,P/;%%WHUPR#NRWG-=."5-=-L?:)O8G:LOD,D[U332O]B;LC?CEJUDMKOI
M5I)=OYCZ#D;[[FM)?H$&,A:XOW;S&!.6_ST:QUB\!&=-8VQHVVT]:C(E57'X
M\[RV([27?NHSBE,!?!AP #&J.Y@S0!,HY+^8SP0WV3STR$[MD)]K';?O(/*&
M#3/#KXFHGNEVCY-C'_K] $3&1M-,8D=F3Y/HK(;+#(ACTV/XM)WQV&LSHD*#
M[6"%_7O'AF.=]1><[BN_Q\.B#DQOIW\<7JR?8G2SN?R.%," \*Q*8 [(L2)8
MK&"G#/N-\+_BGV]XP46N&KO1]0.7/[CE!5[5] K6W4'M-@/(*<*418 QDJF
M6 00]"$0?A1D81+3+#**A8W@9>(]=WOA62G58\>&MV57.>9YS::WP3_M=N Q
M;T+/3LV$KYGA.IC$()GP.K;4$:=&5/UPRUK]!K:OP_D^[@ B1[9M#">S&CL'
MD!U;/Q=+3A33J@8./X=],?_.58$O9U?/O,3W_* .>!D0X<<H$?(XP@, LS0#
M./41"!F*$T&A^HG3T)8[WB<VM_N=D<=>/)CSC3H*;+W.>W(?WZIT US'W9 7
M7B>4UTIU='-BQFB7^Y<Q5]#+(>>_5NS+_2LQ#H%-P,*O-O#AP[H4/)=<;]O
MIV&:9$%, 29,S1+E$* $!2 )6:#2WXP)?UG4J0GV]5<8_7 B@I8]1(T]/!%$
MVS9NR?Z_TBG)RU^SQ?_IZYTX+3/1V_K%&_UOA?KWZO5_\5V\=L;&@O-?:_-R
M_TKF:_I_F07+-$[)\8VXXWCUOMI(8]L-O%UBEA%*,0<4JNIJGT0 ^1 #'$+.
M4OD[GFE=9QPB-'6F7I)527GYGY7':\K>8S>YNMX3_O4D7X1J'K8QW!@N0J>9
MH7$ B)G)[;!0-+V&J-=1=9B'&9#+5>;E$IEY<RT#PIYD5X8^;]-(L.TI]:$9
M:[\D04*22 A ?$$ 3*, D)0AP%+,6(HP3A.M8;/G%I]86SMJW@>37G)'\O>K
MWUBIS%1N)Y#W1T-+L^O+6<E,&M_92VC9RV[XU1GVHSLO07^+N:-G9NP:=Y[;
MPT9P%SYCIO.<LN6[9\:JFU(Z!^7[LKBO;ME-\?Y?FY>K'R6K/F_4SW]4=V)%
M-])/^+JI9YU*S^'M<\G^4;9?)@T+X(C4Q$;C7?Z<,UZPNH%'<P!XC\LBE\S*
M$T->CV=HCPK-^%>O6&^:#_Y0X:P[+E:<MN>#9FK]P8%$R&7?KI^Y.D7^@^-2
M3X%=O:9^:_8*;\C, ,[]<H;-K+85<HQMST502:EU>2C;>3JNZ,]B!!V#U=E-
MU\M:N%=W_)D73[P=#%V?XXKB":_:8]M2\(B$G/D@4)X6#'D"2!B&TN=",*9A
MQE!*M=VM 6(36]*6>I=4;RXYX)J!KL[-P'L9 D[#3W,(AYG9ZI"XVT>BH=U%
MH1PB8>#7.43$SL\;@XR9 Z@I:J]#.+3&? ZBIC0'#J/N,Q96[987:U+1]>;+
M(Z;\0_[,U>YYQPO^ Z^:6%/K@&0LBA!E$&1!X /( GF<3 0#0J2(1 @'6: _
M>T.;[,26;LN'5S.R\!0KC0/1,M/&CPVT7!]2#<LW"5!F-E ;(YNCK3Y8!L9Q
M$M#LS.3X+YB9L306O==LZJ\VGP$UEO# E)H_;9D,YF7.JS>W$EU>RD-)?06P
M_2;[(N9$C9SD)$I4AT "4(P0($$48)@)A"*CWL8]M"8VGPUE[XVWI=U</S;,
MK/9@I9D)=8. 8>;R@O .CYX&\KG*!O90FC=[-RSR2;9-XQ$[;6X=,-74Y-P4
MA]VE=QX+GJ18A=O3&,  1@#1@( TE-Y1B!E-0ZU#H"GAF0Z$>QZHF8IK ZBG
M[U/ 8G<PK'L2'4XGVD; IVE0:"J[(\.@3796*V$*QK'),'[>O(G@N]9O_)!7
M%*^4M_%!_J1:(HH%(\0'(DVA-!5" (SC$'"<!CP-< @CK?1<#XVI ^XM5:\A
MVWBU-6']%H*7T.FW XYD-@QAFXMKU$!P0""K!H*7UIRM@>" 4/L-!(<^:MFX
M^&!VWV?\P-M9&33"3+K= I 4J_9!ZLH4@3[PPXQ 3N*$,:UXQA"AJ97P>"*D
MHFPY6N0B5GJ[L@L$#%723GCSIL #DKGJ]GN)S+QM? >$/>G/._1YB[#DY_4S
M+C=YU<5^8)(@3E+ :) !"'TL]TH"02C"3*0XY90S[=CCX=H3JV='S" D=B2[
M1I#07B(S=>OHV 3ZCM^H?C3/7CJ[D)V^E&:AN?-R],;?CAZ9+\AVGM>#2-J%
MC]@V E#W"3^MJZISQ?/B*2_N;QYY6;^]Z@T7ZY)O[QUR50'+\_MB&4(8B2#Z
M_[N[EMZX<21\WU^AVR: ">A!B>0>!G!L#Q @DP2)<YI#@Z2H1+-MM=&/3))?
MOR3U:/5+35*4DMDY9)Q 8E5]-$O%>L8@Q$6LFGX*>>6&%.!<WKD%P6&86;6E
M<F=E8E724+'[I(\ UNRC/P]<=GJJJ59^H;AZN;^BUXP%>\X"IEGK53>+NDY@
M$&>'I@QC(?+6I,&9D9F;-HP%[+2)P^@5W6_^=8+^0Y7?TZU8"$$8QB0#&(6Y
M:EL: \:S"' >D3!)2))SHU8-%RG,=>NOB0:2:J#(VM_Y#W$QO_$[2^MXWS<5
MU.FV?U:847?]PQ5GO^F?%>C</?_\@X[AMAW;E'E)U]\_4MV'4[G^;[^5FX4H
MDA RS %)F3QN21(")G@&2(QB <-"4&15OW*1TM2A-MHT_JU#3(JBY>W^,D9F
M7WHODML=02NA[:-JUP3R%5.[2&?>B-HU<4_B:5=?<#NLQ_V3E,=]M=M^$#0O
ME]_OA1IV45:J/VXWC?CUT[/\46D-]0VOLY]NGU1S_$61(HR%\I[GH>HLF*<
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
M ;RLW;[I^:<4$MI(/TDO$@:5Z6PRF?U9 I$WL_E+I&N\?#=;W)[VI2,<B82
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
MQM.1UCFS5/H+D1 Q, P.\'#DR$G0#H5"9#XH8C\,&=L$# ./.CK=!LB) F[
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
M-J:4K2]LJ7$Q:ZDA9HZ^G+8.#)<)./Z :V>R\SU.B6OA4KR"8O?/@CM"R@W
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
MU:WS8N=6)8);%K4JY4X!A)=X2C"BP.$^"X;:*$3MQ.5AE V;6!_\<#]962U
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
MTX5/\Y'!<$1%K<%E71R]K'"?E9%HUABMC4PRUVXWN4U%._ Y1J\/P.0((3<
MDQM3C*YIZI+)>+H;J4S2P%W&?4/*.R4JBCE.FH@0;.2]^74W5#32=?3T ^I$
M 3< D1V3D0-)ACD9T+26!QZIFS4B%41'N"*!)^=U98@<.<"Z?Q_F2+T^/G[Z
M*4)N "8'#BKF.B2TA!08#13MHRL#:[('R3(+UA'-9.U.=17G3O=O<>K J0=E
M- "QW8W)@DM9.@'!15>:1+ER=!,\<"D)F>A ;.W75^VUXJP,GY,%W0!8=B1%
MSZ9Q)V>1YR0,VE<J2S\3:SSXG#)*3ED7)$VY^G%V.'6-O/NH ZR>E%*QR4S=
MQ/2KM CS<=<_9Y9?7"U0B'C2')%_WOU!-=+,!Y!8*9O\87[NINO1W;?)[0+D
M:?RX0?[-.'DWN<U[WR0?H\T8D:DR%9D@_&PP8 CZYH@)E:AF)*7:]YU5"#^Y
M>J_TC4T?\GI4QJRTS&&::.X5D*A*K&D-V"@B*&9H2$IHE6H??=M4#.N&/S^F
MM@KW3M-+LZ;KA5N,%[.\*42'IOKJXL+-?\SRY_'Y=)S'H?1_7\T&'$_//Z+X
M0WG">X2%.VF]&H:P'L.5[.7V,C> I5K2'"*#R'D&(2,>O\(CS(Q3JIR5Q-2N
ME=Q/S<D)AGU[N-/(ASL:N3Z@-DXMW.G;M'U!';R8E!Y/WGAGM<(8!W<>;D:*
M;JLE&@)**0K\/^)KBZI7AH:UMY4PN97^: 8"S=KC3^E;FEZ5,>@S-$1=,X\C
MK.R.3ZEA.Q\CKI)%7"]3FAOM&F9W6P>=56(98Y+RIJ,4TR3PE!+ R(4PFG64
MH?8#T@-)._U:Y\%E;C&OE:+4=TU+>'DV3#T8KCPPZ3PU&7T<5MOL'4K;T%=
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
M-9@<2ZBLD7]9YA!&8DS*5&M7NZ?C080-W4ND/GIVC/>HK)\&4AD[I56R?6B
MWXV='T_&RQ_W6.2)9QXE6F&)H8THI9TNN PL!9X3%3;JVH,?CB!SV!?XSP'(
MOG77 #QOCJ +-YX6AR/-N\9Z&(!_\)/Q:BN69Y"EHOW+^ )_Y4/^C-]=Y-7K
M\'OLT^P<L\;BQBR%!]X0P%WI(?ILK31XL+K:";K*+ S[NO\Y8#VDSAN-D=^G
MKGH0W>/NP=SQ_N+N#ZKA+!Y 8JV)2VY>8+'XN%[JMDT8M5'QC+:-R))WDP%*
MT %)J\"B-CR$VN?2/EI.SLB%KRE>3=*'?(:!5AQ/KLHKR-NYV:^_A\D5BG*U
M$2\NKY9KI^0^01LU5R:EC-$2$(I_"$]M>961@5,2>-!..B8K2Z<^%P//=:J!
MO*U$W["J;M3B;<QT'T_?SZ:_N_D_TK(8E5O)'&\&G_#I=>:Q',=,M7$M-\N7
M/M/KU,KRQ^WBM_D;ICTG5H&RM !9,+".*S RRR2LE[%Z [K#J3O5J-[_W.*Y
MS*Z6GY+#7??C54)$HS-1]'#SZ.B>*^%XR#92 CZ69T;*4'0E2AV84]RX'$FF
MU4^84XD>>BQ,+]B[;T2?5[6-VLQ=$^1/,)(/?5P-JW@PN97,X,UZNT9B*X$Z
MIEE!-$& T-:"+TW#<N39)IU]?</W$#W57K*N*K?6$HX?II_*%BFM<+N;IXV\
M@*2&^9A!9V/*G;4&JXR$9'4BC+DH16W+]E0:AS5DU="S]X%K'ZIJ]A+DSNAX
M](7&DY,N<_=]6)T[VH-(K62E-E=;]ZK>A3CN61+*ENG4L3QX3A:<41D$2<FY
M*)2NWA3F,,KJ1;XWKX=631^7]],Z(CJ2/"D[P"+?VN VX"@!92.7.5KN:E_,
M'DK;L):J!P3MCUDK*JF)4J@#+J%5(%[H,J TT ""20].B0B:>:LTD1H]U38K
M GJ[[7@&R%563 -W&[>;Z+JP?I.5$HPXW"W1YU+7E<&2*#$@8C81H9"AVK>\
M#Y S[)W#L]JSTU31%*K.0IA?I9N;P.L<TX9Q=DEI2R,PIB3N%Q; A.Q18L'%
MS ,SLG;,<SAUPW8-?E;,5554H[F)STMDQ-]O]'B\R__@YU69\78PP;6F2M[@
MZT/>7'(-OZXY:Y?G[XCZZ'ZLQHG>#/>2D?O(NFE>#LT4_N$492"H(RRG@/%I
M]>&,)U%<S]"]1L#,?J3T.<V_C<NFW=53]&S2?>2Z<J>K:/LG$I7FX]F*THVB
M:FZ#H8H"<6579T'!<.: !AL#Q=- RMJYD-Z8&7A2YO-A>K]Y'1(>3<0TMZ*X
MY7TMZ[,_W3QVIF[5<W=1,E$K@2P65Q>K[]T[C;25(5(3@;.(9U!P JP/&9S-
MAFMC(C.U^]_5Y6#86*F)/?'L0&C*,]YM C:Y7X^'NU\]1W*.0I?J.9%\:;%/
MP2:M@*$$8A(Z^-Q?SNE8JH>-WAJ#>X\*_PD@?MO]M^/]C^D815UV_A[V\3#S
MH@0>D7<9%6?!.,[ 1/Q&#E:IZB/-*[,P;!C9,/C[A$)[.V$KD+O'?C<8=(=
M=LM"<(S#H_80K$.KP%$J5@L"*O(@HC$BY/ZR<_7Y&79B3CM[9#B0M+!A=EJ)
MC=KK[A=6)N+#U7*Q=--8)NKN9MX20C+5!E@LNO#=>QB;@*@8BF""KYZ-J,K
ML*-^AMP2@\&@A3WP2'QTDTDH>__CU3Q\Q=\H%U('!$N>QW+I:2"4[C;") L^
M*@M4JT")0$FDVB]/>F1GV&%$[1P9@T&DT33_37^>TZJS[W](G2+L!TFK5FN]
M7N46HS>X2^@B6Q$S2$I,F0&DP!//@"M12E]SP5_UXNJ]Y-0LU"F+O$AX1*3;
M!?&OQ7(<T&E:SVZ]A_;D-*-2":!&X"ZD66 L(30>%80SXI7SOK_;QZ-('KJ2
MN@ZR'JKEZ5N/39WQY>283<O)<,TZLKL>J?DB35,>WZ]F\BPPP0V!P!TMMZ\&
M'$>I)ZZH%\%Z4GW@Z0GD#IOF[A^N_>JO*:B^SNB6E&=A-WQ^0D>GW%--PW@R
MOKV:WJ@9T-(2*E'&F7#DU5-T)E@"KHE5EMA(6'^IZJ?3.VR2NG^P]JS!IM#Z
M:DT ,KFJ:=_H1[!=W"*Y9-X&!B26'GF.4C!*<2ASVQ45Y1O])=.>1.JPN>3^
M,=J?WEJ YZJGVH?\X3*5T0+3\_)<_:6;SW^@OU-"MXTK_IQ]5CJA3\,U*[D[
M EYJ5<*Q9(.)QK+JOND3Z!LV8=L;$/O24 OHN]ED96+L=7D)RG#MJ"P^S2:3
M-RLN[]^R.R:I-L@:6G] V2*G01@@PJ9(H\LQ]&<?GTKML'G3_DUDK]IK-*>#
M?O;%>/6$UTUC:?N"6S--3^N_^?B'ULCY/)'T2CF@C57/[JVZ YC<RTRM%5#>
M]8&P+(#3A@(GI:5U=C1%6WE_/XG DX8GW>Z<3^/SKTO<0(MTZUN47O"W+7WN
M.QA*^105NA71.8T[M@SWX?A5:?0MF&'))/X8S$XE8MB43W] NC-PZ;F4U, Y
MW'%3[@?N7]9*$92C%ICGI?= 1#:R24"ITH%JKH.MG=G90\JP69O^$5=3$TT
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
MZJ*AB/N 2!VXNN5@M8US5)2&21)&88R8L,6#\Q3+(A?1,]0JAD$)S&$XN4_
M="UMCM?I?8 <*> ^'/#*R#94=13W8@U[;8X!%%H#/B0&,:,4P==&XJWG:7Q'
MP.3H.%:A]_WH Z4[=?;H XF>WOXYS///9%'/%U\V<X76QG7+3]8E8"V"-R40
M/R8;J"85/,<2E5):B6%IQP$OFR:Z;X^,480[\6YS?</S]HS+3;LXCLX:X6G_
M9:HRX2$(;RE0%.2U*<Q>#*K-?&:W>92 B>?#CN&:M!'VU(BY/Q-UNZ;0!ED8
MK]6B,H+29!Z],@R,D8QX<$6X055VSR'F,0*FVX$:*7;16LH30^45A7]$^?7=
MWE+G?6H-O*X8Q3Q"#$;5,[R,1J?HAQ7I/H./[]\Z(2C:J'#11)Y=5.?^\MLO
MK[:T1\Z\,2A!):RG*[).P:85HD6FU<*=,K9UY?_-VZ=S2-IBXDBY3HJ)-9Y7
ML_ ^I%H3NCO<+SD$)SVDF.NHRRS "9> :U^D-EF05]7"1-Q]\32'G"-9B:.D
MVH6A>,3[NGU 8I5WN3KM.M1.^AE"LAF*D$$+[6T4K6NYGJ-IVG/RYO[J**KH
M(&GR3+;ZE[_3^56N#0=6*Z3_\A_A[[/"7$R<1\A9U5Y8*0.%^ZSVR[=)&Q8L
M;YU:.8#,+G.Y!^+DW@7;<976[3#B^X>!._Y7?]T20-,SSB??,,X)YW"F3GR^
M6>=9>XX1/-H:OCG:.0,AR155N"M%%]FZ1OU$YYL//KM>!_W'<K%:[?H?Q(*&
MG T!&(JN(0;M',9X\,)+SAB*%%OOLX,(>QDGGON@YX'+X(WUTX5G]^<\SL[/
M,5^O^)OVRF<B::XP2Q!%\'I14$&4IH ,UD?R4C5WK9M4/$'.M/G'4T"LE2XZ
M\.H>DM&OLQ#7,PS/7&8F1I)/J0,JE'86 B-/)#%$\A$2DZIUB?Z3!$T;*DQE
MO0[3QXLI/VLQ%7W 4\=QP$XRP7PH\'S069),('E5BZXM03 $BEY#Y%[$>N3Z
M(Q:5*6)28D;0JHY$S;F JY=)M<XEZ61,LJT[7[_\HK)]L+)74=D^VICXF.5#
MF'_:E,1(9KC2D0$IVFR:W#FM.1B7#4.C481!=8G/I$^O7]AERN$ _2V.%68/
M"-@5'Q0E$R\,G,VT(I*IO3Q\;<UKA8S!>Z\'E=P/P<#41VP'*NNNN@^0W-1S
M,&?SV<75Q6X4F^,L1>?!%)W(GRI8ZY(8Y)AT21AX#H-&<#PW O/V2R=6^B$J
M6[20W]2*#W_?(EQ)&QV+"FQ1=: PXQ 5HR@M,JV*0%/"($_IV=FG?^^I^%$.
M3YLH_F#Y]1'E/CT^K<@DD]$:U+K$G@57.SHE<)$7V@XY=[+U0463&8;3E'$=
MXB*,HHHNH75GE!H7*:/W#$1Q!93U'!SC&KAV%+,7A3J-WO[S9<TRW L!^\XR
MW$<='<#KT6%Z-DO-0MUK%2T_%8PC.ZXSA!*9J-.*=6Q]0?2%SC+<2^-#9QGN
M(_Z.8/3[XA)7OR["O%9VOYG-PSS-YI]NN/OIV\W7UWUL@A8V9,[J?1%3FS&;
M.OV8 T^"TV]+H7CK'J''T-MQ/<DQ&^?)5-@!7+_G8+N.1?:^&%W NYK\5L:0
MTYH0I*DE.DBKV[2>,_T0'5VTTSL!"NY5DARIDJDO]WS\O%A>_H'+B]WIW0U'
MN[I@I[3*D8)8D>M<)FDK8RJ "<H:$50T^D[1PJ-S9IY[U]1)XF.5N1A/LE,#
MI3;Y?IJ;C-(7J0J@J+GS@!J\)ZN>LF44"QL6XK 95<^^:NJS])8P:2O7#G:I
MYROWG&#&^ *<>PIDM!$0@B#/LP03A4:ETXFZ'?RZ5[%M\R$BHSM'354QM0%Z
MY@CO??BV[JQ$2XFV='2T6$("&6IQ**U,"%9%T*EH7UR=D/SLX?F^+^WR\.I
M52].(/<.3-4#-I<\R)_H9_7K5Y<_A7/R(/'C9\3+G\,E+<;"L/8#@(RU/@Z9
M@ZAEAA*SUDK%B*:UZ=J7QBX3I,?!\"3JZ@".C]9HOB9:9NLY"+OQ<TP*'K2/
M8(RCF"4E#R$7!4QF-*5D7?((F?F!U'69:F@#P9%4]&*JTK[_R;\Q-ZU.>_3I
MXU2I#6/FQ-5J18K"(BHP*7I0] T$CPF,\IPYD841[6<RGN:*P.=ZX/IV_N@:
M>C7/UT6=-V6CTBLMM(4DE2)YT%J*4A:(B7$M,OID!G6SVL?2'4+HU*F+]NBZ
M9_M&UU^G>_ U4_<,QAGCR(L-""S5SIHI!' R"9 HO!11*-L\^[H?A1.?0HT/
MF7TJQ8_37P_H?$*>]^48:@&\K]7PL3:R+O7$F%%<9K-*.6#*Q@RJXVID.@\S
MF9-?B1G+9!ZGKQ[ ^!13KZ\NKL[75P!>A\OT^<\OK_+_I=]9IPH66]'OI//+
MZG)V0?':N_+',LQ7]$B"P/OE+.%9,CF:R#ED7>\-U;$A7B8)B1@2HEA/"#RE
M?6W#5K]&^4A0[F.,)T#(U"G,G3S^>D@>O^-?KXBOKQ2:X.H]+LMB>5'3&>_B
M^6P3RWZD/U=E5A,@=T.9,V.C=$DZ2";0GADT;9=6ZUJ((;6A3YG0SP5D(],X
MK;D?'_4]J;C[[6&KC3]F%UB6X0+WD49UW!*QSHK2X!67) SKP>OJ+7K#8M"*
MHSO%3?)F#+V,.YQ'^4+=X.'PQ;&X#.<GS+8]*(2F&;<GWS!.UFTX4Z?.O%F5
M="JJ%D-J4(YIB 8-:(;,JR"9]:W[!?1P3S3%9#GS#H0UC$)@D<$++J"@]SPR
M;WQHS?;+OR>Z#U;VNB>ZCS;ZZ"S_?1=U$TUF(5I E;'.Z>805'8@$[E34B2M
M?8NFG"]L^,!>6GUN^, ^(NX#(@\TS$9E#2_D8)- #.W744*L/6>*3R%I5:SE
M@ZS.#S)\8"^=#AH^L(^ .X@6OF^/KV0NJB1%JZ3V"K'*@1,I0N:6!!)$LFZ$
M.5]]#Q_82Z%/#A_81[H=0./:A:QBJ!/3'W(@ZZE[NL1, 03]RKNR"14VB:*/
MEV&Y+@A9+S5-MEBFQ""+6$\70J%(P7/(2:IZ687[,JBM^/YN7B,.NJSP.7R?
MZT#-'8#\V:J5G%5.M$> R+QV)C$2@@Z11%MX-%H;XJG'JMEIKA0= \2FJN@
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
M_?'78LM:#$:0/UZK7&N]#6WS$$RB;[TRY*'1PT/K0]X]R)LV"79*L!VFD0[
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
MFX4_QI,),/4.E#>]RMG2V[\:Y:8!GKN (F4J#ZXRR%JP^A#2&>JU,FYS]MP
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
MP.&$SH\]39[5YS67R?H$=OW@M6R7#S7C=Q?#2G'QUDZ!'E4 ['%*QCN,"(G
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
M^0VBQ#C"$0NO(!H44AHX6D- %EPO1'1T06F>F"O]9'D_1=TP=1&7V0.HH %
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
M!E'/KK+.I\+*)=F?05-QTT;<5B$SIK#F'&''0'XX>R7&&R03N"E:1$>ZX?!
M2?9. BK#ZHP(F)561VU,/3]UUA&394D'I2F2F(./DIQ!SA&+HJ-$"8:EC*X$
MIG814*_FNY!B9Z6E7!DJ+V 3 >6+==0;8:=H!VYE"((BK@-'$ <GQ#!L&,J]
M,J[$,Y"G7ZT(BC(JG!619P,AX)O?WMP]8& T*D621)9H"&0TUDA;S9 G7AOB
M')S@I;V@AZ_7>RE0%A$]Y5K;-BS&]J/UXS3V=SE$3+44 4C.(.9$:F1(RI5S
MB9/\QMNS3AF30^9A\\/U'A(,8"%Z2;5F45I.",Y_C'[_/$J"1BX#N%., XAS
M5MD9YA %^$9OP;77^W*PB^C_U]7L^_]>KW@+A?4/#TAX^%Z]9P5EU7^B!!O0
M^;LW(Q\T#:MI<Y1+<),"@Z,LY=<021BG<(!0KYC.W[VI][)@&)T?*<$&=/[J
M'R-NM%#>4D1(3K!00Y )*B 6.8$ BF"\=^;.<3I_]8]ZCPN&T?F1$FQ!Y^]'
M!G/K,.&(,9&;LB:*K-(821N$Q)X2:_?U"3A2Y^_KO2\82.?'2; !G;][/[+2
MT6"\1-@J@X#ZW(,WWY:$_-J=):'V]H,\TK9WT_D@3PP&LNW'2; !G7_^9<05
MTR:"\V$%XV"9(#XU/'GDI1,4_DIBMF^0V'$Z__Q+O5<&P^C\2 DV$-P?>8_Z
MD-.D+%E#)4%*@H?* S/9;Q'(1$K@1),XNM)7 :?26KDOW_GOK,^JW(9 ?)]E
M(B%P3AD(+:4 3G7DR!J<WPQQ2B68WU2\OGR3AKJ)DO-H?@?<3E)#.S#*,GLU
MFZY8^-=X^?7^!?B??G(3<C(39 ;_%[[8/T<D2A*-E0@.!F#1TOSF0Q,4A!"P
M,[6GHG0=U0EDM@'&TW"Q'62#*:D!'+Z?3?W-/$OV=G>.<(I8.,.1BIX@[G1
MA@B.B$T^*JNIQL6[W&[04/<,+8J@7N)MM"'IIYAG7O@\(&QZ]>JKG5_U*I':
MMUR)"JC.Y!8J<'KR/3C^/L5)'J3PPB_'WU<3U>Z!A7W 1O"(/ .?']PM@ZP.
M!'E!/,%6,D5+/__H3%S)$JBMGWPU6]RYG4I$8B7L*+"3JSGL%N20,(I"2$]D
M"CZ5GBA]!'FUS[,AT+2OVJFDMAHXX)YN?V!CQ=0BSK_?O@K!&(. /)S7UE+$
M)<7(,!U1LIP)DZAWN+Q3M9>D=LJ>BD+AF6]53B\-P"P_"MD0V=T;$48TCA@C
MR7,?<FY]3JYR%+A,S@?-I"Q]>;&3F(9L65^5SX:0?P- ^C"-7\;7,<_R&4]7
MJGD9IS&-EP\5/1!%<,61P+FE?7Y>ZXS4N4L^\S'$Z'7I*0*':*H+JT*JGPVH
MAP9P]09\\=F/&#]#>#//T\3N^M,X2PQ5%$F2 Y($L8@..#/$O-&1>&-+OZO9
M04K=L&\8%)60>@/@V6.Y'Z[SN \&:\:0S3:<.Y"8%<8@[:2CA"CG?/F+T,-T
MM7,C7\F=.DU#K:'NJ<3N9@5]G"W&696+-Y/QRD['\#'.Q[.P?KF6VV!3+,!
MRPB,\MPHPB00K%!.*.:=B[;TE(H"9#?KIYV(I7U@/8-B6\/R^A9J9%0,C'"%
MM,\MN[7DR#&E4# N>1*XBJ[TQ<<V.FK?MYX3;:>(OOX][)."A^C#[?(O_K#S
M\"5OCZN'::*'KV"W5E'D16_AX\,#:K9_X<A;V9.)[WDA"Y\:W7[E>O6)!X_@
M5''L7O%$Z_!XP=^FW\9YT2_ ]DOXR_\4(?/YJE6.EH.ZN-NTG212T9X_H2\N
MO\Y"87UMK%G%-)^FK>W2:$17'^&SR_GU-+R=V*LBFGJZ8I7W(2?I::LD&M%2
MWO&OIHLP+Z>FC26K/.0XV?H]ET4CBOK'[(\'^LI:P!U+5WF-<9+B]LNFL@+O
MS]3Q=0QO9_-7L^MO_[23WMMMW[I5'E4<I;H.4FEAXRU>@9L<O\SNR<W71@5W
MWX'UJSR4.'X+=I-2L_H<2(UUGCP4TEXC2GLW#>/OXW"S;D_21U$;2]4-RO;+
M?'9( +6WTF3R0-==1K+7)MJV8#4-[9#YK)L &KCZO-W_=TV&RUYG/EV[;K#<
M:1?M%4H#ROK\%9A]:1?Y-O[Z6YPNUO*;V^G5JGO-XN6/AW_ST?[(?[9BYH&C
M:?@XL=,\6V5==5)6YX.06#7ALAT,FS5Z VJF >#=9\J7X*1]^)9Y.VC*>Q4?
M//M.W;*[(;6[JRAAEZ@;@,.*MA??X/-^O&Y'>O5UN?C\XM/G06!Q^'MURPC.
M"(_.HJ_M]VT[=,$1RAR6#Z+N%J[RBKA_&+4AEQ94]_LTS"<_KCY'?S._+66_
M7O;7V]95.YEV7%]K^T32@LK>_#GW'^=C7V!_/2S523D-9"2?,=^"1GZ!$V#Y
MVB[C6SN>_]-.;@JH9LN:G7340!YRMS@J*^OISO[QVW^6*RB]^CJ]^NC[F;T#
M2W=27=W49#?AM%J&\V:^RA<,5(+S?/4BY3<'B"Y0>O,I^MGW./_Q(3W[UC,P
MG(3[3A_HL677J]Y]IO_E_-8%J]TK'J.?QYMUGU@J&]E<Z;=NLIS/@-Z7]-O6
MJZ:OO7*?=1+"7SI],HAWTE4I?R=._DZ<'*6;][/I^S@KH92G*]5+-.Z3]>P
MXPV=*W'Y\"(PV]=B!\RSA:L9M5,]@RYBJFWRKJZ6:Z9ZWS8]7:I: >BIVMHN
MBLKZN2-H:B<_%N-%F=JFG8M6*P;MZ7OO%$]E[7U>_N?CW'^8?UG,WRR6X]NA
M8B6KY#M]H%JEZ*E:/49LE37\X68)-GZZ:GI6SI3N7K5:Z>BINCPHH'8.P/>S
MY;_C_4D=2Y5Q=_E M4K2 H?E0;%5UO!;6'0VC7><EDB([EBR6D7IJ5K<+YJV
M]/;Z)GZ9O?DSY_HC\)F'=/J5:]W7V![SG6K)[D(:[B+$!M7^S_%LLA+SA_2/
MV75\==OQ^U?[QQ"ZW_NQ>HGSD@CH(L\&80 <__>-G>1!36OJO]@_[[H0#0&%
M@Q^LEZHO"8>N<FT+$F#&)G:Z)OC=];?<]!$8<./)>/FCC.]VVA?KU084 L5Q
MDFTG BOIXNU9MEX!08$@K$U?;PN!A>/HS64[*;&INZ[#,FHH*S"+"X@+/\7_
MOAG/[^U*&:-\Q&<Z*;FIJZ_C9=AJ%=#'[T-5 #U=N4CUSQYB"U3^?+0__KGX
M&.<0;5WGGH>E"W^ZK-]C7X-P^M?ZW"]2+>%ZA!8>[\A-[FLGA/Z,_F8Y_AY?
M@9FXFLU_]"X=V;YB/35MRGO6D?G:%\F3R29YXUBHB&3WPO6JK_:J8G:<7"JK
M[F.<%=#3PRHU:TH.RWJVA_'Z13Y TOLBZMA<J]Y;Z".5LD,(?]<JGO.D^;L^
M\>_ZQ.-T$_[KRVP5C_?='D]7JE9&M6]W;&6VM@(FDWNRRFR-S>7J'>M;Q3WK
MPGMMI5Q=+5>OEJ:+Z3\M;-[/-]?7M_=6B^7TBYN\G<U??)NXR;_G)71V]-=J
M>FJ[-#8K(+X&U)YI!A87G[_[5XME(>UN7;2F9]=1B?N$43OX*:VGDW4TS$8[
M)/U9-U$THJ6/\WEQ16VN66\_G:"K'0*I?4OWW\L?+_Z8AT4FL8"JMJU7K\-R
M)[.W1P2M*&=@=^28[]2[Q]NCIFW:O!@?Y EC>3+U%7A0G[[-E^$Y"Z5W:+?/
MU7ND>:3.CY9@9=7_>_YF&M[F=A<?TCT3O\RGF?!7W^?AW_.<2P^K43N_3[\O
MEJ$  $[^:!M;_SC]SLH)NS)6<GCU;KJF?Y/237[ V?CWO,1Y?OI7VS :)Z.E
MM[@KP^6?P.#5Z^56O ,?\-?WL"\ D^._5LTI+ ./D\7;CA5YL?B0UFQ\2"L$
MW[-1&!TG?[3:,\_B-N0D8=<N8[XC_);>:7A^;MX:OK>3L.+MU6P:%J_G\)M2
MR"E$0K6'I65P5%81E5'U^GL(BP_S#\NO\S= X>)C^#"]Y^;],O_Y'XM/:>(S
M6U^6DRR@/-BC%*1*?+_:X]8R>"JH@MI#<:+-=7&]4YF/UZEVZ.Q+9&YAM/9%
M[YK:,K72SU>K5VW1K_RRM6<GKV:?XR3Z90QK#/5^<;)]Q7KY_]/TM5<NM<O+
M@)1P7XOU(:6QAW7?3LOLM<.KUS.!I^FRL[QJV\P8Y[_,9S??WBT6-P4UNF_=
M:K[OJ7;TL(QJ6]2ON7=_N">TE!;WK5O-XSS5NAZ64?6]./LR6]I)B>=[FVM5
MZY)R\I[;*HOZ&GKAES=V,OGQT8Y#(45M6[):/Y33];5',K5KJG+*'2A<18V%
M3..N-:NU.3E1<0=D4]OMO"OH?_']JIAMW+EHO0XEIWJ9!\33D/96E#VR$"65
MN&WM>NU%"NARC[!:,*7WI!8WJ#M7KM<8I(]=/22HZG4^-^/ECSS:Y%:4$-Y<
MKT:XO1XG("8"MZ6T>^2GZO4).5'=IXFR=MBX86;^N5@=(JOA;U]G$Y#RIV6I
M2/*X3]5K,7+RW=TIHFQ._^_C\MW4SZX+W:%W^D"]3B/%=+U;;,UI^-DE\U":
MWO.A3AIOZN[H!#%6UOP6\Y,Y7U]^E5%ZUV]TTG=+MT]'"J^Y3?YA^37.!][?
MV[_12=4M75P=*;S:N]JZFXF=_SI>+ NFNG>OVDF=+5UG'110;04^MRQ];T)V
M+-FI6J&ERZS]HJE^\W]G_,LK\-#:G339TE561V%55.G=?/)[Q_W7V6)?O=8I
M8^"?KMU)B:U<8.T53W5O9\/S[KO]MB[825TM74#M$TOM#K79H<H<%5+8MO4Z
MZ:NE"Z,]0FGABK_(5+/'"W524$NW/-O$4-T)F?4NE;Q;HY,^6KJ#V6"^C3+O
MWNHXMEZ5MG1-TF"9ZFSZ"S@N:\)>QX6?CU=IF$)UJH>7[Z3$EBY NHNL^KD4
MQIDN.^&8?G_@KE3Z^=#JG33;TEU(9X'5/M:FB^G+:5KF)T3%ZH]WK-GI34!+
MMR('A%.]@N#A]5>Y4H'M:W9274O7( >$T^KT@7?3Q1B$^65N5Y,GY_-<-YVG
M*FS< /0<1;#G,T7F$G1EH\"0@F>?>@:+$YO][ERVSPWT_7(O\R2;_N,)MBY8
ML1/N(5T\N7/>(XS:F8)[TGJ_)=U8JIIN]DI[JU8:>EWZ8C+98DO*M,O=O7 #
MNMK3.?>@0/[NO%YK#_W=A?WO+NS'W6@MYY,O<7Z]^)"^S /@JXPWOV?9:GOH
M.!_AL&"J>PJ9JA*3&Y^N5.W]_+$^W!;V6U')E_&RMWO]9*EJ#^%/5,H3 536
MRJ>;2238"9*]FC#[MHSA[<1>]5+/KC6K/7(_3D\'1%+_.G\(G>U9MMJK]N/4
M=E@P31C %5WY$8Q=EC""3Y:K]J+]%$.X31 -&<,O\^OILJPM?+1DM;?LIYO"
MYP)IRQ(64MCN5:L]8^]E!YM3VUW ,+\>WPZ%+V0)-U>L]W+]%&NX0QY-Z.K-
MG]_&\Y*JVEBPWKOT4S2U71I-*.KUS2UA!51TOU2]5^:G*&=3 DVHY7/T-_/Q
M<AP7+ZZN7GRWXTGO]PU[UJWW3OP4A>V5S66D@S_.)F,/#'R<S_R Z> GGQD@
M';R;C>+IX,>?>H:1 GGA[>OW2IJLEP^/ERX5>Q]>O9'4\5Z]/<VT=)17]638
M-CK?SY9K4LO<]W?_2B/7_SWUO$=^PUOT]5_D7YQ=Q/____M_4$L#!!0    (
M (J"6UHH0('DZ#   +@0 0 >    8V]D97AI<RUE>#$P,35C<V5P87)A=&EO
M;F$N:'1M[7U;=]M6EN;[_ J,TYV29E$LDKK;J:PE2W*LZ8KE)2F=KJ=>(' H
M(@8!%BZ2V;]^]NW<0)"B58J)3)P'1Z+ @W/99U^_O?</TVJ6_OC#5(7QC__K
MA_^]MQ=<Y%$]4UD51(4**Q4'=9ED]\&OL2H_!7M[\M1Y/E\4R?VT"D:#T6'P
M:UY\2AY"_GN55*GZ48_SPU_Y]Q_^2B_Y89S'BQ]_B).'((G_]BK9/SP:QNID
M,!ZIPX/AT?Z).HJC^'1P<+(_C@:3Z+^'K^"K\#A_IZP6J?K;JUF2[4T5OO_U
MT7'_Z&1>O7E,XFKZ>C@8_/LK>O3''R9Y5L'["O@^_\C#+ \6%O<P7I7/7^_W
M3P]AK'D8Q[#H/5KAZT'_=%Z]XO'T=Z(\S8O7WPWHOS?XE[U).$O2Q>N_W"4S
M508?U&-PD\_"["^],LS*O5(5R80?+)/_43!1> _]^LCK.(9QTB13>EW#$:[D
M^^].AV_^#_R[_R;X_KNCX9O@_/+F[NSJ0_#SV<U_7%X$5Q_>7=_\?'9W=?TA
M>']V&[R]O/P07/]\=7<'?WQW<_US</?^ZC:X_*_W5V^O[N#/YV>_W%X&\"-\
M^O;Z[GWPX?H.!KN[O+DZ^WMP]N$"_W#W_C*X^\='^.?]V1W]=G/YT]7MW<W9
M!_CUYO+L[C: EWV\N?I/^&9P?1.<7W]X=W5Q^>$.1NG[&[[15J=J@CM]T+;]
M]&&E/E=[89K<9Z\C("M5O%IYPK_O"U^.!(8;D<#Y]<7E?UW=]N"HSS?:64NM
MZ_?&VXG#WX'$F^L[:%W?=53E8U4$PX,>,I.#398X'/6'S;/\&BMH/Z';(@EN
M%D J&TU]V$*'VYO[C?K^N\.3-]]_-SP:M/Q[J^9A$59)G@5A%@/;S\HZK5 @
MG-T72C&#W^B\!EM9=#O)7:BP".#4:.D;'MI)V_P;G..P?^PSCM_JLDHFBRTM
M\VZ:E$&J*N!=0:FJ,ICD134-JJD*X*-9&>03^J7T#SFRAQSJ0PYV*ASL^^].
M1J.!V;)M$.P2W6UC9VD?AF]V8?O""FY%K#XG)7#H+.KC3JDN;-1Y/IN'V:(3
MVY0@K4U@$*"I*@\6>8W_"Y,X2#+\K0C4;)[F"R*UJH!7)D2.DR*?$8G*8C:2
M?RN$P_)=/6R]K/Q1DL4PE]?[A\2MM\2<A_WM$9"_?Z-1_P2WP9$'%V =;).X
M^L$_@(R(0Q';"J-/6?Z8JOA>\;4DNA+"<>F+F%^2D7$#Z]#ZAZ@?G;F_'=IJ
M?8_[P1D)#=SN29ZF^2-=:-BOQF1[P4ZX2]?\414JR/(@S;-[I:\Y;'Q8NO<:
M7S \?E,&Y]-$38)W<#I9E(1I<#V9))$J>O3*G3&/:8>;JA2&@N/-83"7B?2"
M."D4G"Q\%98?WN,8>8%<",<+YCESF#)X3$0DRE1Z00*2DK]-;P5.P+_ "F'D
MDN;R_7<'QV]@O%7/EO6X3.(D+!(XA1UO^!#GSJ]]XDWTH3M2+^@(;>I;]5.1
MU_-.4.:&@N%H$\%PV'G!,.J@8'A0(+<C%;Q5F9H 96]7-GRLB[(.49O('857
MU-M8[C[IOR I@"-4(6@BY],0V I^#(9.5>1I8)=E],Y>H$"5B:KD02$7@X?_
M;YC58;$(1L<D0O;A"?07*+S1\/KQ@MX[5M6C4J3NT.\.4P!N"7.#P6,5[W9(
M "VMO0M7O8>[KK(ISBS&S27+Q#D>=V-)/2@=?<#5,T4-0*'UF*0IG!#HGNST
MQ//09W">/]!AWCG/7]<5<&4BE;"%;#["$O.X+U-&J5G6T11$RX1,SF G84E6
M GL!406O))(H5%4766-!FH+UDN#M('A0?@#% DEEU6(OSU2P,QKN!E&8 A6!
M=1N'B]*JS_0&HG9O9'PGD2.*<I!&L -1/E,.@<,KPBC*BYCHP @MNDTBE!-9
M"WQSGBZL/'5,S+:7%B*S<<N2K$9%XGH,[#:4J_D(.]Y8.4D;/)I8P75-Z7[!
M#8WH1(Y@\KB*':#'E&>?@K2-TK N40;#+/5T.R1&-2OJQL5R-YMNQ+S('Y#,
M29/3!VLUOPYL8;?DCFSEQGZE 5JJSW+6/LN:/1YN4VD!DZ K6LOPI#_:]]66
MCR%)A2VK+78^\Q",UG_68 .QPZ0()B!\TF &HTR!SX[#4@5EF*+B,4-WW3Q-
M1!X^JA18]\YP)+I$E5?PQ=(,'<[R&A8'K/G?#H[V>P>GI_W341?UCBZ<B;5]
M[\C.;<[-J YS=&?Q6?70:OL-+3GXO8!33%!_@!,%W2 %Z177$4LYE$C(5Z=Y
MBL0)(C7/6NWB0MW7<-1FC#*:PB@I"6B6UNL-<GR.>7<QPX/75"0$%+$0YN>K
M*<C9^VEPH2(U0\_(_I!=(\#63M]HF1#W@BD(:=@.UJY09J"2@U/DC>&/P?PG
M0?^8(+W*M&FC8,]F(0B7.>A*A9;UET;UN&C7679(_L-=\,7_<+ #JC.I +M!
M.06-!OY:5BI$QU!4U$IT<'ZE[/(D*4J88@QJ75)6N%VH-,"$0A@T"L>ILH>&
ML_&WN#'5G7%=D;Z$WJ8'G"KZ*<**-P@4E($H9>O."82PD;.%FH%1@@^N.RVS
MW:3L:5.$3^S0G"6Q 8<OT(@PU0RF7Y3X#8D%-.F&S\FA;5IBD-:S.1SW3+]^
M%=WR#J^D7KL7S8D_M9OZ>:'-P]U5UW/N&8) 2IIB1NBB0O($(XTL+UFK^@PV
M0L7;J9\]&)R>Z1VZ0ML..?%*62W\X_BX/SA 22V^IM>%2HG$EK *^HOCO*KR
MV>N!_4HX+O.TKE9_Y>M'J9ML\H0\U6T8"_YW6E@=YE[MC<'"^K073F"JK\/T
M$6[$J]\/VO%<K6E+ ;L;I/1:44 )R6UX>G)$YJ[X!CHCHG&"71#*00W;4C2#
MF*@ZS5-@$GR5Z2.'"]P!!98U\(X;8DOT=XQV'[\9]O&B[PUWQKL[IR_K4VP/
M#'=).Q]W1SN'>S_"C1#? !#^>Q6FU30"=KU=_?QJPL%+&!7DL4)'@Q;'"EV+
M*'[NE9#E^?7;F[,6JYJ]_*AH *%RE J?!+U#S9)Z5B*1ZD'Y[_?D^9C2)MBW
M["19E-:X;_8S4/#$T05TEJ &$ZNY(@(KT?\4A',P%$BWZ8[&S\O_*,OO!&/!
M?0R#.?GQ2/*3\K2Y>=X)F=(_&N ULAK?$]IG)PA")NW1A#A4MT49,B7K*%NR
M@7ID[3P7AM@F,$XZ0T5X+QP>]I?2*OW&88M7A*P__]C&XI-COI?,9BI.@,Z
M]44*_1? C^*ZT-38=N3$;K5;6K,TO)P>2P13KV:]WS!";?F$009;(''G(F#V
M**\7A=\=EN?@65@>;T4FCOI#G@$W->R7M TGG@""@NTA-EV<-4023& )$69N
MX%H5L+?>NFC<O' LZ"<F_L1N]F@J,R E[S!@%D!:?I1!SI,6T \^Y!7:I64%
M5K1^ ;Q5W>?P&\D5]\NQXKW B#78<$@ 8,: *$K*J%"X07Q?,.00@1&:5R0*
MEV;-T?D<+,%Y#C9:E8!9O\!MKPM:YL3@!**\A)? -H"L@YW#J+OLL!%W8#T^
M.B*S9\9.DUE2A3PK8QP>#X^TP?>Q!C*/1 6!)XJ'!&-B406, '8@+.)4E13I
M>)PJ.D[<9"V'K?@5=0&)J%A!=4QHOLJ@W1CLU*!]$B>3Y\6(0SHT%<*AF2@0
MF_E/0#7"8%+COE;A9]JG*"R-%\>Z(/&KSF8VS@D702?*;W0T$_J><3BV?&V5
MM@+J"5$@?[DS,9O;N2**.\==$B]#%S26GIR!]ALA\0L!MW$"1D_-PD4O0$]+
M2"@=P]')&=(+:G39X1FT+1K5U$<@?GH%WC][OEJ17;:@7B;4T7E;*NJ.+75"
MFL2K'PG;]K'(]V["*@S>YEE==H%\V:WNF4=A6N;:- ()J;F'X40AJE][!2YC
MGA=:^R V$E9[%:A:J@K&M$!])6CQABLN$/Z] []&:/YSM+\D0;?8FZ _%]3^
MB'S-QX?_OFL&IT$:;T ;"J,KR.G^;7B\WSL!;?'@N#NF5<NQ=X%;\;&WT61+
M.,5W.;]\<*6#88"-?$^#_O#PI<+')UV'O.UW#O+F),/<*/8CEM-DJW!(XZ J
M83JE4>D-X,T)F(V"< SZ9CM<"B\6(>)(SS0P(<):PQ\U+,3)%"E9+;8LU^!=
MK8O6(?DV-%Y76&8'S_6+8*X#RK5Z(51)YU6M#H)*' +:KM_*5;!::=I(VQBC
MZR1OIR%(LK&ZKS,M+KOH)&S<TUO0R:K.I$F(Y@$[:S)-<"_?J7'!..$3CEDC
M;R37@9.0 JIIFF""@A.PTBS[$$&,@G+LWAELG]2_D$N^G/)TU'WL73>C>^;^
MBO;0E7PR1\>QV8CD9EQ6>%I!RF( A(4*C?VH/H-="6J9<CW':"V@XX6<D.)V
M(22UHK=$18(F""%QT>9AI<G."9]A-V--3D]&D9=SF&<R3M*$/RS)3E)EQ0#!
M]J2KR\\JJLF.D:2K8*<+#.;RN@LL!;VV"!Z*%4+V%0K!_)Z<O9UQ3';L.EE+
M_YU8!.%#GG > =R(.*_'5:\U&4:N('J3Z6L9W(!D3M(Q!8LZE42+YF)9XN)=
M4I\C!0_#-+0'-)0(COF^N;T%>IL+OA>2EKQ\F_,'L6#FA8H4W=O]HSUV=4N(
M6-M([*4G)<HDD#C0%$*5R<MU=@A:3"#NYSGF*<#<VD!G"+CI2;I1BT[6#U:C
MT7XGN'GG)5X'?; .U;Y3VY9V%TZHL*G%]23C T@9*5Y2W1SI-T$W@5N<:([9
MN(12SXN6V]4405[R6_<8Z+9/QS+/?^AS*.LQ: ANZA.PTX@YAF2Z+[-$K.CA
M9@PDDK2U,M''1/8GG%:-65B-?3&I9].DJ.#T]@>[[-$D3"?3R[PR 60]S]5*
M^9\0+COJ)ESVSRHJXNZ("FT<7?ZS3N!V(5:UVGZ,[A^4KUE7!O^1S]EGBX92
M7413!*5HA@+F"[ <F&0>?4*$1%D5281\GSX)ZBQA,T;74 #1@6DII!FZCS0R
M.3LB)>1@SC#TW0D98?-LO.R:!]AWDW/>YL;3<@#,TJ0P(*Y6=4!K H@K\,A
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
MQ]#-DCTC]9QKN"YPI2)"?7!B"WH7'Y7--6% U-*K[71I.0PNX<7C:C!&-BE
M8&_:6NE;5'X5:SA]"=9P_!*LX;1_^J]Q!_/-_F!IM[&]41HN7B<9[< XS:-/
M;QZPGQ=0IQP#T(J\_>"@?SHX:@SA]FUI31#>$E?Y%3TQY52@6*B*<<X#A>TF
M-<EF-'@P[^%+(.Q+^]NZA[/P\YYL?']T +H"'BE_,. /EG?YU::#KSR@P_W^
MR>'!4Q2R2G(</3<7:TLG?(L%^C RV]N,W0T[N[Y5/0UCS-3![J#1"P1#GV48
M+"L/PWW4'K;5-GY!N(/M:='K='ZJMU32O\%MI>:H35P@T'.[3O[VG?1GV M^
M?OOVMA=\G/8OO@#3UQ5>?SX-$VPN#@LH5$EM5DFA.Y\B[OJ2L]A H;KF<BUK
M9?NZ*_*%=VXXP(Y+?R260PHF>R+.+/PG]B[=B^U4)XAGXPM=),'- @1N\+S_
MNKT+($SU^C:4I2_6E'5+Z\78V]?,_OU2VAL.B.Z&1_2_T6!T\"+4]B<TY8:#
MU?S^K^,\7L#_IM4L_?'_ 5!+ P04    " "*@EM:BT2RZ1(1  "^CP  '@
M &-O9&5X:7,M97@Q,#$V8VEN;F]V871U<S)N+FAT;>U=67/;.!)^WU^!=6IG
MG"I9T>';GE0YMI)UE<=.V9[-[M,61$(2)KP"@%:47[_=#9 B==A*QC%IKZ8F
MB202!]'WUPWP>&3"X.WQ2'#_[=^._[ZUQ<YB+PU%9)BG!#?"9ZF6T9!]\H7^
MS+:VW%VG<3)1<C@RK-/J[+!/L?HL[[B];J0)Q-NLG^,W]OOQ&QKDN!_[D[?'
MOKQCTO]M0WJ[N_M<['7W.[O=[9U^GW>WN]L'^WN[7IOSW;[X;WL#FL+MMHTV
MDT#\MA'*:&LD</S#O4YBCL;2-Z/#=JOUCPVZ[^WQ((X,#*:@L?UH^YCKR8BO
M9HL'<A@=>C!;H3:6MEVA57;=BX-8';YJT7]'>&5KP$,93 Y_O96AT.Q2C-EU
M'/+HUX;FD=[20LF!O5'+;P(>!9Z*OH[=8T(_@8Q$]MCM#C[K3>_TZO*,G?S>
MNSR#/[?L]HI=7)U<LA/X%2[^<7U^^Q]V\N&ZU\/+JSS/GZDV<C#YWF5PS8[H
M)QGYL"J'W=W$_/2%V5ZX,+<CJ5DV[V=$F2K6BFT:6*TJ%^N)*+7X\7]YM=_I
MM(ZJ?/Z3H1+"*LN*UZ%]])J!Y)!. ]TO(Q,SKED\8&?"$V%?*%#X#53ZVPW6
MGS >^8R',1B(\\O+JW^=W/YQPR[.W_?8S>EY[_*T!]]  ,XO/[#W?P#CGS?8
MQ<<&X]!;P,=<"1;(4**52;@RD5!Z)!/@QW@HS C&&DLS8M)HIE//$UK'2MLA
MM0:EHQNL!L0[CZ+XCIOTB23H?N(UD%HP: "F6_& \2&:\DT9X0J.F,<3[DDS
M:;!5EYC--ZW!FI].G_!D6!.Y@34="78AP/;!$@92(UO'$;OQ1L)/ \':S3;>
MH@1(4ZQ8C)_'4@L0!^3^B;T( C=0<<@,S!&H9/_=%!Q(P.NP]/8!:[#@Q*7(
MZL(S\DX$]>!,1_\:K _J EBATZNSWK_/;QJ@H$^;)=7KQ2J)%3<2F'2S!DOW
M+E8J'M>"MUXW']M5#KD:0M#2CXV)0Q@,9E.7(.):@%[G@?[!N5?F^2_QI9K5
M\D][MW4T__>LP6IDAL(*:<;Z;,3O1-G[,B,.L;A0AH,EOHAY1 UNA)<JL,8L
M=QV93]&Z==;>B[Y*N9JP=C=SUN "#W%,'_VV4J_OI=*&G>!5Z@E&O6>@1FFD
MWSD,DH\!#<1@8!7RLJFP3;B IE+#?%@([>?M75]DDVVP,/;E0.(GG29)0'-
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
MF6?:CQ=6I0PE;C16\:*)P(P+/(N%W7M7X%T0,>$Z_;[S1T2!G0LNG<./;41
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
MI2?9W+@ 3)\RFV&'!R\L6!DI1(>:/^1R/4UZ#3]@<L2,^EJ!5\)-&20\C[8
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
MLE J>W&*.+5[V5W3P.J .M(V=8(%WCIZUWA"S!\1#PR87QD)8!W\H/,4(\T
M@@92UYF&,9+CQIX/?]B$0R*-R[O:)D0HB;05K:XFHZNHVO2#&7;LC44/4=3?
MTE]4VT2#<QT_)E".%Z3T%O,PGXWQR1MXX31/HH!J^^ALPZCF,]&X%JL4G5Z/
MF[(4LX#=.D15Z0GUDWCN@ BB>FX]_;6V)7#)[_][>(1D56#;CJ7@*D&*8_1F
MFZ[1=%A8L'H=S.>F7AP,+;@HI3XM7LJLE=7])^N.A')CQ=BCC-1_1>^Z)9(@
MUTD7(,!F:65JI!"LO-JMXDNZT( [)R8BB,,(G*99431?W+JJ]U-)\E /&I"S
M^#VEYH@5B_[$XEA,"$4Q\=-R7Q;#"X#O"OX;6@%ZV'K$M]AB$3Y9.-@/PA3/
M4N\977R_87<)=FD"B?00WT8J?6TCEZS;C@BPS'M="(E39_17>([79QHZI &C
MK=\EHNC77S+R$LR52(+W!O>T-T_5S_H?;T$.S4-O\7,0T<O016_%4)#'H?*_
M05Y)\,3% "#%SU_+DP\/>P?[^_CP#$S0S-</EG'U:%Q_S_SZ=X<'O<.M]J^W
M>GWSW=_IWGQ_>(-T[D7__=WV=Q4#]^?!_(M3 <FB?5-]"1[_=^V6=860N /
MS_!-E3;:3,/?::E>$IWTBK9F]_X'R/C.(Y#]WOXV&M0V*2,R,:(FNF%=[LWI
MA(-R"^,K"I/-N.+ Z-.R2B?U!=<*D0T92^0PVT157EIH-XO?2AB@P;8RMA9^
M]+$<L1L5$;L_.6+W NGB7R7G7T-R5MDI7K#D?!HB_ONZ^\^+T[8#S!?E '/1
MII8#0N@X49V%ALF1;)SH?G/,K<<<V2Z'@XI 3ALGN=6-1_?=&?3Z&^/-'A->
MN";?T)ZUT#Z4P.:T0[=:8*^IQN.>2K/C^,RX:QTZZ!V0#KU32SE+=IM$E.I(
MC'LF!*V<UU>-!\; Q+6&S7IN H_%WG/A0$Q!AWE3A<V8O1SDM9P.'02!L^,1
M3)."0 $E T+Z''LS!"&1"+C.M6(V 8J^P)MCY"<G8&J4)7%HI0)JT])RMJR9
M*%%G+CFVG25-C_2(NB.HIXSI@X7-8X%A7PAT8-*US-GN;>_@2Y^D:2ZV\Y%E
MA3O'PB&;=AZIOG.$786N"T:_@.G1\4^3<-[H4YGA@?P6MK[:;,I"5_C1Y067
M( 3N,BI* "5ZH($NK(1/H/JZKY+\)*B7)8&E;RPR>Z%2<";7:O)9D\/C+1X#
MGW"?/M+=2H-!KVO4\0%)@Z6-G25Q;VO([JAX2PE^;BQU$W"J1?JE6WT-ZGEU
MS)C*^^BN /IOZO\3I/K/)TI4KN4V7!\<:XEH.8\LLQ4EWK4*?<.'[CM@9JH;
MM ^I<TBIP;592%5E/>;= S8(XIBIKQ3M)(FU4(N61'%3[2EG8#"-Z_GPH!2[
M9$BBC7)=A7@-HDQ=4?_P2B;'+:2V+15+>3IC54HZ:MSP/(MEN<@BB$&U895"
MD>NWR2""HW@V@_<8XBPZFJF9&Z6*LT!)N W=/A5^@C-/H(,(>=RI%6.@_$T9
MV 3,/ 3_P(%B_M:&V)_?,EF8K*0V6L@^ZR6>-!:W7TB>HC8-Y?VTVNN&CZP?
MTT"I+2XZ%5\F2OF5N=$9%KXI_&ICNDF(BU#XNLL0'K9)DQB&M"'IS"K7/65%
MVZ[:= T.A]K66&^.7[M\ZYF:C>'5E5X-Z4Z/ZK#@WU<!WJ577V<[WU>M0+-1
MBK:399GC=P4EQ(\J>5>6ZR59;LPKVR[:-)#T-+IS;]B=N_-1=!$L:Z8;P=$;
M&IG.]PR]9+;I4C/</!(3P]5]!%SGRDM-UEX8F1&%%M#C)9E?<3GTC#Y)'4NK
MR&_&*W4M\3L7^1K!7!+YO@J]!8FQ14SNO+3$,9WQ"$M5/9E!%%#K6%#XQ$*M
M3=&9]R\$.VD AX\N_P;LQE2)( '9XL$M:B>M)"P#W)K8G9H)PN$A"."X%Z[]
MN;4Y2M8B*#@ ]082=%/*@VEFIX@0W-B]:V9-BJ4PL_0A%=)P>W(?7NQX+YO]
M>0F*IX5E45@5J>9CKT$IW>+G@H5#YAUMAN#O;TO6BGW/("H"=4J0MCUGB.%]
M6#?<H&DL]RL%K"IU6'0,L$,D+)Q 9T >ZS)M:?%8+&BY6Y:^8Q5G*&8Q8WB,
MS0S_,U%^;M>-)@KT.[7OLEW<'%5*S8:'Z_(P"Q!N8S6PA%=N\#F<BJ @EGON
M8.F5H*_<$$=4ZZ)TBZ;V-28"Z2.7_63A:G<43P4H4\$Y<YMJ,G@",EZ,T5/?
M _46:VPND9)J;[:V="0<3;,&4\/P$F+,]&TSXVP!^^+FU>XZOL5C8WGOXDAZ
M24[Z\[?MN*^3;G;X41S/59GM[#F=],IAG<AHY+3H5K*DFC]C;"CVT:. KV!G
MQ]PUPP;L6P+(1@IH9+.1/G0=%J6"C<J 8XPN161_HOV(% _<6 ,NN4KT<9($
MA< %=#^= CO:\#Z2T0BH<( &H='<X!=<-9VV]D"%#$&L6R5B&2L#4E,J( ^Q
MVEQ3IS%N/)9:)/?P;4WC/\S.?44PO"(85D0P5/FX7C""X>$=Y+K63CMKKYV.
M.#]9]./MA+K 8/G)T*[:1 ;*/4/P-EGB9*$IRPV:V5CM57(<(.$I%V2\4/.@
M(CS44&Y3%-Z!ZO(#MH[9JI=6]VWE0*(N2.=HB_U5T+\*^J\5]#OW%_3^ZH2,
MNX_18.FP=SAX,NU0;4JZBC.SINIB=^W5!27.ARD)Q8RSZ$N2SIWH$N=H>'S\
MYO@?[S%^\QG9Y)QIH'-)9)6#EAB'WN2S@]<7:7<!"]!;>:DS+EYQ66;>>!4F
MC45ZHH*D<382-:4, 0;NL<E>H$+?:)ZB&&PU"(&[(O7!DH%O:AR555U=JOLF
MC(&!8V%_Q05B/;*$\&GP1N6\EMWE, 055;IQT7W]1\-0I(,\I0A04WDNR9B*
M0X@7-CF%=D@0NQ5B2(IJ>V^4WT ^H'?(!DQ'R^/=<O;R*C!Y2]/Q&1X23(H2
M<LS#@>-K]]CV8\5C ;WOYQ/V)^\<2:GI/,]"K0B]/(;R8-V&IO>45J429K9V
M!*_O@Z\^00/&](<>8E6P1XTB5QHTQJJOZN/CSK61PFW*'.4I9X1@?V//FU+!
MO90=Z"U6\_%E)>%W#IR/!&-UZ)Q;@5FTN6@1>,RX*YZ(T?&9E4/7<:Z5*?#L
M\[@.-'@KLIN]H*#G=N=D>'?;"?6]X!RSNNC$)@#9(;@*"[+ !"5VB@4%W)W(
MQKLK"*(B7Z(UO&LJU#F#:<U+4[7 GE:J05HJ%&;]5")D[IH9I^/S7GKWY9F.
M_H.H3EZ._[#] A"+LF=@*YO#U1U@T6[_;?"]#9++/J$UGFJRN(5DH<3],(M]
ML+99L"!6*C+,+H)? CN8TAV$J$JU,U%[@'FZ(5VH7J T[3:;3T;.3,&:!ZL0
MS*)3='3DMT3 [4I@#&VVAC?>N/.-*L/<- E+LKX:;FG< YH&G_R#;UAP%40K
M919T39#^F'9,?RV%5=<6[0JQ<5O_:]>W*_M%^T7BR^?CXH."8ZWAQ!F.&;!*
M&L6$!>1M@IL\+9%8HW8]7$_M^@*2.<9W[ERIIA2%<FP.5,NSIS(^E1!S87,H
MI[NBO0[G4.KUEI$.S@FHK:,^U8*) H=5 NB/E<'H/QP'N#9D\-N=Q\E7(8,/
MV$1#K5ZF,T/QNPX62*_IU 5%N4*!6EE=EC]W'(2Q-.TD8F[S"SG]5ZVFYW!O
M[;7:N4JSN#O<W&F<H?#$OKS"6+? \/R5=HY8K24+G?(9:0XY,N39]:M[=5BY
M!'LT90"#2K,JRRV*>,,V"%)^%D1<^2/D.Q-O'F22\1G'H>_PG9FACG ,2/29
M(FMXRE58 EJCI^&Y: H\P7[ I($!L\EXY*K4JLACC'5=A-P!LK9O;HE&H]_L
M![2YDA[9#[HTRLH?48J 3%CKC1MN0%#H&<7GBCDWF0^=L^/R)%W2YA8U;5P/
M1*R!XK.!(:.N8JDIHXE1-X1I+.6.]-CHV<OF4+,LX6+^[OT''A;GJ?-1F ^-
MJUU)[63$;3@-OB#% F=97-N6,,'%WM:V'OB9L!?JJ ""9@Q%)!-M%JR&A9]1
M2>\PVAS^G5&HHV$@5#DG0063H[GOB[LKO+&P.-=>H[8M.3/8N"!EQFC<2%[1
MORQB!@OXZ96*5$)732G]ESBA-RY=_-=(/77M]]RG^]*(<\MKG'A:":&RCA$;
M+<"Q 20[<"#2-+5(DQZX(TVBN;1)B I_N\"O7:=2]VH"BWP!'T?3CX%N)<RA
MGU0R\U!3.B=6IN<(+],THQ7@0L^Y*&3DLF!J38=7)(JNC/6B[FA,3=:^.Q;7
M# :0^&G!E5XL;Y56L!W)<6>2#2^K,OTC@>],)5=4A,/2.4/SR\ P*":1ML(B
MB@)SEY-M='NI_YEAD5XJ;.GI<@J"5_3F*WIS1?3F[I.B-P]>>COM^S:TZ;RK
MP)JPUKV/P19_<WG+S8FWM@CJ#FOG'*-@0/3>WW8&O:VM3;3@G?3?.1.JQ22M
MSQ$MC\(%Z2FTC/ZDHGB<3N 7S ^_$?14SW7^-G#W]W?=[;TMO%NKRR0"> :K
MA#A$Z2U<$*]?WL(S%V_.(E4=\,;?!OVO&BB:*(U604%WUO)J?7?[8-_=.Z!7
M,RT$X%$$Q=.O!%80TNASA=C,P[V7&._5Z.,[AH%N!W+$64JQ.BHI'SVZ5JDW
M5UBC1Y_SE,/8.FGXLI9 B/4ACY1M_3ZXJ>WKXB .=N^UOZL;H#B)< YWM[[Z
M'(8RUEW[#,(;[7[-&.\^A*VOU=_>=_=WU_H,/CQ;W]I(:85S]6;K^;N*7XI_
MU)V'L\3!Z\[GJ3#^>),LESB=A4TVSF[=!3(.2<D'XC@N_3K(<HSCSLW++^MJ
MYMXU ,L=8U VMZZQ:I]+97/<=%2*H^$,N>+(I4Q\N+P15A'9;6N'U4*77&ZK
M5NJZ9B;/\\%0Q68X[ -.E2J\>RO=L]_K;QEO?\D&TERT7Q@R8>:KN=?J^_<_
M?+]]\';4$E>PR&T+#$:C@^JE!7$:)[2J+FN3.^J\KX&'*O&)SLYHRT2MQ?FL
MC,WT<7+YGRFF=N $93#Q\VN$+PA1%;$5S'/4.N83TX#(M6AW&D/BY1AU*7 A
MQZZQ7(08M?ZC"$9QG4<^'C2X)WJJ6!JR]5^;6E.MH.1DCV/#(PRHL\*GF@YF
M./ H*V37O\Q@@J]US$.STXRH/A8MFF.\3M!(R&ICNH(9+@8IQ,7WQ!J1*?,X
MCN' ET5.DPC8U5SI)5S)M0</AE<@3:D%7Q[E2+M34=YF2IZ&4ZPA,/_\^KAK
M),1@O[<_6!Z;'Q9[@#;'L;T!JDNU#H'[)^^ZVZUWM+L.Y2.'Y!V56G7J7N[.
M./>OF#OE[M2"6.GMTD[G2H4236OT-0.=O:-7[@IPIM%C/(I&DE[VK(PE:6?I
M2UW+3?L?@SW+Y[Z7-23:$0" -X;_Q0Q,X^/G*-'Y6O+D>!%]J<0Q/8<:D^S(
M.H0F522%BUF,IBQM@)YS6<*U,_\D/9SY2CEYX=UX0<BNK5&N76V0T1=D:Z,]
MW=TNJ3*GM?"ES;V%ENVT:M;8G0UK3S'STDS2_6:.P41_GR>XTJZ@'>6W_C+%
ML81S#_.44JU*UQ-#5'P+[@)HJ:+U.QE -?^_7;(@$5QHF.KR&5Z#J)Z[K@LB
MVF4%>,2\@T1MPCPEN 3MP5F<\]N*,5_SA\X5[F$8<VMZLS,WH'VL:^$)X/_Q
M]!9+J2+;OFXPK[6LK%4F4U<TS%+6=F;A!PI!8CP&:\ 3NABS*_,HU.1GS,A8
M"G%A,;LVJ_TV]65L;RS2H7(A8TSW=G@_6(>KF;VQ-#BB@KO[[-6&;@W:>+9E
MID?J*1N$H>8^H';;^(HWC&'#$8'P);97WS1]9>X \I.IR0N[^4T-X:F1[R0/
MO:1ZIAOF#44 +ZLU\ *7EZA@9M[>Y2ZNN'FFT\#W;@+1:%KF9)K(TV/<@A:#
M#6]+S@QS2L/4X][S GHC\J0*C8FS "K-SWDSD2_FEBNNV+*AIK;3!2K%)2*(
M7B'8+ 'RBY>Y8PG2^AI(6T$>K%N^+8ZQU/S"XG$PSV2>](*U:;/H-PA&!DR)
M9KA(?W1@;R,!5(AX-;[_K8=T$Q0<T]@QT1C%@;E[#]@ >JY28^@'=Q_((^L#
MURF-UN6^&M96;W1GD?D/P^KF)'Y[CL<:U*>2X_$'V"L%'PD=MBI[;+W.TBRD
MQ'!L\F&%,7'D:N9C3V$-;CX=VV1DR#46>@&RXZ99/!?2#MC])5)KE" YM0!#
M GVP9CF_@AM?<QMC/$CJ9P22W,R2B7?@78D_*XYP<\48=5CWN-F+A&:BFIHP
M^JI"M-86?%D9-//:U/,5:_.T6)N]OPXEYGHT]2SID\$!GL!O"V\SV.IM4:+_
MA"/IA/J7%)\Q'[2QXA:!%&(YQQ!Z82NY=DTO_@FW\O%_=>\222R H1*7#6MC
MHVD^2WBQ&](K+;9Q4T0MGTO'%"O8WX"#Y<9S:+S? <?E>(I+WRTU13VJ##5\
M815GRRJ6*WM Y- ;HC&;=M,SU9&ZUL4*2E!]!I6=6B$J0]92BB&D*B-#GCF<
M.5R$'2DB;V:X%%J7#U>-%Y!+5< _T&&1(!5J?&(S%4 #YV#(6C8>/WZ,3@.7
M$)'+(,X';Z+:R^&MO0G.$=C*Q726XV6-M-2[O;[!$8ES4$Q$K=M C"V5_!*Q
M_PT,#1<HB&AKRP*9B<5A$-M.S=-*E?J<ZA?0#8$>O\7M.MK#ZP-3JDJODK=C
MR2\_P)8'(75%E/6[M]PHK7O)LZ;-82+TK2X:.<V%MVR\9/<KY1!YJNVR2#I@
M!<4KK"Z0'EL0W5<$T425) WF7/5 ^+P_M4RY>6:14MI:'93[KJ7(V5T3UI5:
M[H\K9\HA0G(PL;)RQD%C6'3?D+#)/IP&8(O#!]?.1G_W$=]LCY3+W1.:;5X_
M?RS;1*4)GT''0I]6$[\BXV(YHRK3H98.<E"8E8_=,&I-ST/7Q8WZ/'S2F2Z[
M^Q3*+YWD;D^F%-JXN=E4J9%\25,'U%'MZWEW'5W1&\;1%7LJ0>S74K.,(RQ,
M 4E,%732G*)9QK;<C!7<9=B<^P3R^ME;_U$PN6R E4/>E&S '^GZXT+E(\:J
MP@[%'UJQPENBQV"=[^DE.,)HSI1;W< J'YDUUVM2YXHV^] P1KN%IO= ,./(
M!<I!XES2^3B&LM#A9FHZXR N99K&DX#24$87+#'?'J/0>F\UT'47C#==<W1@
M!?8=**\CS7,ZM'E.7P87\(H:;!V;A5J8494&TFW+9&VC.(+E<A C/0/5SERT
M!15MF8F6FFPWW.2.JR35UM8 F96(C1=:B62W"N'0X+ ";&IKM;GIYE51%]6F
M@ART6OI"W(UFA1^NVLR<2DO @TK\5;)+V""LCN6N=RVL@FZ\:&'U6.55X8F!
MUU 3IIUB!?S0ECEW#\)"_MC5W]Z*$QI,P2(!!96'U TA(?X<"YR%KV"#B>;8
M4B?.TU('GI*3V(PK9HS]2E"DY^V\N 9D'_MKH&KN(/OX&*03%<+.5K#V:ZQ6
M5M0J54Z]#I9\#0#!=W" 74SB>1?@<)(W\PQ=F:*!?"G<95$J5ZG9"UP52M>%
M%C0IE1(618PP$QPQM&NX* 3(!&)S+2K-")X]G-7O?H^N 7;$#ERU$^UN-/6Z
ML76-50]1 TM4R5.*;J/DJV\:M*H&J)J2O]MKY@,5+;X<:W&W 7RPBKE+SM W
ME_/=IL2^U=C7F!LA7H(61 J+3LD,<,+C,"WWVT;C6JG,-KFPRS,%RY_V8*_O
MHG:="C.+6C@PR/?H83%KF,=@Z!(F6)?Q:1)&\VOA@//09GV*A7Q%.;VBG%9$
M.>W_=5!.906\O;9AVTG7B?QM,4[JTFN&T%0&?%(K=&R)+OT!L?,O9>FO Z+W
MO*6J8 +5%]!S&Q =<1I6+%7]K()#C4(^5KG#&+DB4NV43SC&C%ZYSG54(LGQ
M9)+# 9TLJM8-CL?#=\J4=1N\-[XK)Z<7R\7NJP!]%: K"M"#IZ1DV^Z_^(:Z
M!VO2!V##[]YHW-]N%KL3Q1DMH8JPZ"R=3#>CO4H"?Y-QFRL:C$U1I6:U^/R+
MH;K6@8/>?HL%[P5) 46C_"-2Q@3CW' 2-%_#11T>IF.#IASCDV.(UK)EP/Z:
M8(B6A@O!Q(@^AV#Y=!$SO"@G%@@/Z=IDPKCE"C+;U HH8E0PJ!?=6-3"R"E#
M)HN3ZI?4EI<TF&-_U,%L!CR6N%Z\4!".U\KSI6'D\,(YN> V9'%40@8*C+%N
MAAF3K9(*TDS0\V!>/5ZNXR?Q/!4JJC V@2\" >I$$'6TKKX.C[5T/*=!HJYC
M[JI@_GWC(67=Q!O#4F#FT) G_9@ZGW1F4&/CI3FG'7B1T$Q YB7&VAZC,N_E
MM)/=7Q,,U++S_#Z,$3(:>WA1%T>:!Q#R +#WAD?ND_%S!$,UUAM5&-;,#QF@
M&J1.?W?+F<=$/% A4S1G"J%2S$/A3)L?2SED*]6,!Y]9J#+[XPJI-9?QPI9S
M2^W8BX[@1,O& 6ML<A%$<*:%/8,'(E71U"+.='$0,@,9Y+=V=KHF8+K[[%#3
MJ0LP3M#+Z$0?GC $@-#:HFK.%9A5GPQ!&M4W,0%I2T\J<)BQT!S+9N>P^^QL
M&-:1<V1BO*AQ*S;5.I5T5S";*1^19IB@0\Q+1DI%E\$687L-CR&]@>PRJ,$C
MK3-XB#) F&BJW:5QX2L_\-6?Z##U&7JP?H>I:YS;W8?I0S!5SH4W5=FBPXYM
M&XR;$H#GIJ:MG,W#F&'QI@(0T3=D*8G-.55O4AI]I5;$*D))X:73*7V\**&L
M=.JQ\7:TP[VL%!G\)B#D^[VN(3,K[-IX\KG+#H,$_LZ3R37B&4(<#+A#BY!H
MFMG"_ZP6'*0N^1L$==9L3;H>UM2]$M4",BZ1_)52)UWEU/X4+KZD,#>:7O=O
MMBF58.--/ET"E/2Q/;8*=?,U-.KR:**=&_+:QA+XH8!U1JBYDB5GGCOS4@S%
MPW#%%Y)'3C;I>>;+..%7PJ<5TQ+;A5;3*E\1K45(9-:1J"[KCN5F.I^C^(LS
MCK]H%#@N$/)LF^(;)*5!9&9&L#^R'PV_+9<K1RK4-S7EA24:7,T:)PQ*7L0:
M$0=CTPB#H8I/ICP&2"U=3(!:GS9Z@<.QBL[\35,BAY6[9-#.A"JXWLM,=M"4
M+.ZVW:,YATK[U+@!38O :UQYEEUII_=5!P&F-36J#]9>H@X9%OL?6.KS4LUB
MEV(6JR79\:3"B5.%Q>/O@LEG1>1F> 3@%\;Q*Q=;UK#25&#F990^K"#>*MCD
M"VXL:=\-BTXLPEYF!A8H\4*"08(=#D+\2,8')W.LX+JI9;O;7F?3XRTE XO(
M=CJS#Q>+5!Y=RF7+4WSMC=U-<-M3).])J>Y)SJB0\]@G^1',\;5IHKS?.US_
M)LHGD92XP49:.&<L[]<!\?L(6.\7%?&'D76<:J/DSM(0H>H$'USC@9PH:O9"
MO0@,KZ3P=0FO9*^5M[UF"6*%@[J5NI<Y>G6ZJ?AJ??0T726.IK!2A#?!!C"&
M"TH;K##.(#)U'H:ZGC0 /B-@:)RN[ZAC/,J,#_0>K6TD[.H-H< I:F9TI\@[
M^@16;,C6)A19K.>ZG#OX:[1P[=J@6J&JXSW%FJG$A\)FZR#FOZJP8RUM:]V_
M9X7^IB7H%XH:=FO&*-S0Y=.2@:L42J@O7ZD9&6NPT'-<Z\)GXE^3 QF@-)C"
M,<86#<[%-=5]4?_E2#*9[" F&.,=J^P6.5^J@]3^OHS"],+1A8#&A"W\<N9K
M9J^_J6U*=N\Y$IQW^P9Z19^]HL]61)\=/BGZ;.>E-P0%4WI0D[;R8;=+-_K'
M[R?O3BZ==P^.>F\/>G5-(A]V^V[OAR?GSL?A^?^,+IWST>GE\(-S/KP</8E?
M]*):379=.=G?N[/_SC&V PBTF_ >@6T?O>2SRKAU8^B<@W[NPG7JJ)7&VLP
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
MT;L[@09AD=YKG<M<)CB-*N&[VE'>><E@D#H);8L*)OB6Q0N>Z(@E2%H6=!Y
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
MHS //L)U06921=*.'^G@"OTE9!HM,1]Z?YT\75>:BSOW]M[TM][L;IF3:JK
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
M4\*C*NGX6+(.N^)SXXOO1XG42F-TFP?TQAB"B1>YJ20V)N0@X+@,3L)BP:&
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
MDX5<$__93\-[^&-4C..?_C]02P,$%     @ BH);6C_/EDH3 P  H@H  !X
M  !E>&AI8FET,C,Q875D:71C;VYS96YT,C R-"YH=&W-5FUOTS 0_LZO,$4P
MD)HN<=Z[4@D-AA!CFAC2/B(W<=ICB1W9SK;RZ[DX"5M7T :=$/D0G>U[>>Y\
M]R2SE:G*^6S%63Y_,GOJ..2MS)J*"T,RQ9GA.6DTB"4YS[F^(([3:QW*>JU@
MN3*$NC0DYU)=P"7KS@V8DL\'/[/];CW;MT%F"YFOY[,<+@GDKT=0N#E+8S<)
MHI &G-,D]HH@9)$?TI#Q-/WJC= 4U3L;;=8E?SVJ0#@KWL:?QK0V!U>0F]74
M<]WG(ZLWGQ52& RFT+@3.Q];G@R_-@XK82FF-I]19SH<9[*4:OK,M<]!>^(4
MK()R/=W[ A77Y(1?D<^R8F)OK)G0CN8*BDY1PW<^]5IX=GG5XT4_)0@^X.]
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
M/:.UCXB6X(Y,.5Q6X1D0WOCGJSSW9<ZS7R2U?]/W4?OQNZS_ %!+ P04
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
M+FAT;5!+ 0(4 Q0    ( (J"6UH0%QHMDQ@  (DM 0 1              "
M 0$H P!C9'AS+3(P,C0Q,C,Q+GAS9%!+ 0(4 Q0    ( (J"6UJ:&5.=!BL
M )"S 0 5              "  <-  P!C9'AS+3(P,C0Q,C,Q7V-A;"YX;6Q0
M2P$"% ,4    " "*@EM:T265B-2%  #D_P4 %0              @ '\:P,
M8V1X<RTR,#(T,3(S,5]D968N>&UL4$L! A0#%     @ BH);6F1-QFQPY0$
M2ET" !0              ( ! _(# &-D>',M,C R-#$R,S%?9S$N:G!G4$L!
M A0#%     @ BH);6DFN!^BQC0$ B7X/ !4              ( !I=<% &-D
M>',M,C R-#$R,S%?;&%B+GAM;%!+ 0(4 Q0    ( (J"6UJ$FMR8L^P  /8&
M"P 5              "  8EE!P!C9'AS+3(P,C0Q,C,Q7W!R92YX;6Q02P$"
M% ,4    " "*@EM:*$"!Y.@P  "X$ $ '@              @ %O4@@ 8V]D
M97AI<RUE>#$P,35C<V5P87)A=&EO;F$N:'1M4$L! A0#%     @ BH);6HM$
MLND2$0  OH\  !X              ( !DX,( &-O9&5X:7,M97@Q,#$V8VEN
M;F]V871U<S)N+FAT;5!+ 0(4 Q0    ( (J"6UJYU"B>^F0  )J] @ >
M          "  >&4" !C;V1E>&ES+65X,3 Q:FUE=&QI9F5A;65N9"YH=&U0
M2P$"% ,4    " "*@EM:@V".7\@]  !-E0$ '@              @ $7^@@
M8V]D97AI<RUE>#$Y,6EN<VED97)T<F%D:6XN:'1M4$L! A0#%     @ BH);
M6C_/EDH3 P  H@H  !X              ( !&S@) &5X:&EB:70R,S%A=61I
M=&-O;G-E;G0R,#(T+FAT;5!+ 0(4 Q0    ( (J"6UHR&O8A% ,  )@*   >
M              "  6H["0!E>&AI8FET,C,R875D:71C;VYS96YT,C R-"YH
M=&U02P$"% ,4    " "*@EM:ZC(&)*8'  ">)0  &P              @ &Z
M/@D 97AH:6)I=#,Q,6-D>',M,C R-#$R,S$N:'1M4$L! A0#%     @ BH);
M6G1KV/-_!P  V24  !L              ( !F48) &5X:&EB:70S,3)C9'AS
M+3(P,C0Q,C,Q+FAT;5!+ 0(4 Q0    ( (J"6UJZ6EMTW@0  -H6   ;
M          "  5%."0!E>&AI8FET,S(Q8V1X<RTR,#(T,3(S,2YH=&U02P4&
2     !  $ !O!   :%,)

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>115
<FILENAME>cdxs-20241231_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cdxs="http://www.codexis.com/20241231"
  xmlns:country="http://xbrl.sec.gov/country/2024"
  xmlns:cyd="http://xbrl.sec.gov/cyd/2024"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2024"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="cdxs-20241231.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="c-3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2025-02-24</instant>
        </period>
    </context>
    <context id="c-4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-10">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-15">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-16">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-18">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-23">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-34">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-36">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-37">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-40">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-41">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-42">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-43">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-45">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-46">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-47">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-48">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">cdxs:CashDepositMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-53">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:FourCustomersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-54">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:FourCustomersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-55">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-56">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-57">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-59">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cdxs:NovelBiotherapeuticsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-60">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-61">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-62">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-63">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-65">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-68">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-69">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-70">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-71">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-72">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:LongTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-73">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:ShortTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-74">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis">cdxs:LongTermUnbilledReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-76">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-78">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2028-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-80">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-82">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-83">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-84">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-86">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-87">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-88">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2012-02-01</startDate>
            <endDate>2012-02-29</endDate>
        </period>
    </context>
    <context id="c-89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2015-12-01</startDate>
            <endDate>2015-12-31</endDate>
        </period>
    </context>
    <context id="c-90">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-91">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-92">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-93">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-95">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">cdxs:CollaborativeArrangementConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-96">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MerckMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:SitagliptinEnzymeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-97">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:EnzymeSupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-98">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:SupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-99">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestecLtd.NestleHealthSciencesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:StrategicCollaborationAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-102">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NestleHealthScienceMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cdxs:AcquisitionAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="c-104">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-05-31</instant>
        </period>
    </context>
    <context id="c-105">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-106">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-107">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-05-01</startDate>
            <endDate>2019-05-31</endDate>
        </period>
    </context>
    <context id="c-108">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-05-31</instant>
        </period>
    </context>
    <context id="c-109">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-111">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cdxs:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-113">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-114">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:NovartisMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c-116">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-12-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c-117">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestoneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-10-31</instant>
        </period>
    </context>
    <context id="c-118">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:RocheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:UpFrontPaymentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="c-120">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="c-121">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">cdxs:MilestonePaymentPerTargetGeneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="c-122">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-124">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-125">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-126">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:TakedaPharmaceuticalCoLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-127">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="c-128">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="c-129">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:RoyaltyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="c-130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:CommercializationAndEnzymeSupplyAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-06-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="c-131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-132">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-133">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MAIAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="c-134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-07-31</endDate>
        </period>
    </context>
    <context id="c-135">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-136">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-137">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-138">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-139">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-140">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-141">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:RoyaltyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-142">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-143">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-144">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">cdxs:MasterCollaborationResearchAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-145">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-08-31</instant>
        </period>
    </context>
    <context id="c-146">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-08-01</startDate>
            <endDate>2022-08-31</endDate>
        </period>
    </context>
    <context id="c-147">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-148">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-149">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-150">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-151">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-152">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-153">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-154">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-155">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-156">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-157">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-158">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:PfizerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:EnzymeProductMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:RevenueFromContractWithCustomerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-159">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-11-30</instant>
        </period>
    </context>
    <context id="c-160">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-11-30</instant>
        </period>
    </context>
    <context id="c-161">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-162">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-03-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c-163">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesAAndBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-164">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="c-165">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesC1PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="c-166">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-09-30</instant>
        </period>
    </context>
    <context id="c-167">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-168">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cdxs:ResearchandDevelopmentRevenueMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-169">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:SeriesCAndC1PreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-170">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-171">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">cdxs:CommonStockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-172">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="c-173">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-10-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-174">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-175">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="c-176">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:ArzedaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-177">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-178">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">us-gaap:RelatedPartyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-09-30</endDate>
        </period>
    </context>
    <context id="c-179">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-180">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:SeqWellMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-181">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-182">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">cdxs:MolecularAssembliesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-183">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-184">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:OtherAggregatedInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-185">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-186">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-187">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-188">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-189">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-190">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-191">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-192">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-193">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-194">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-195">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-196">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-197">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-198">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-199">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-200">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-203">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-204">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-205">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-206">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-208">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:CashAndCashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-209">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-210">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SecurityOwnedNotReadilyMarketableAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-212">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-213">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-215">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-216">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-217">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-218">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:OfficeEquipmentAndFurnitureMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-219">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-221">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-222">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cdxs:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-223">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-225">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-226">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-229">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-230">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:A2024InducementPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-08-31</instant>
        </period>
    </context>
    <context id="c-231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022InducementPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-01-31</instant>
        </period>
    </context>
    <context id="c-232">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-22</instant>
        </period>
    </context>
    <context id="c-233">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019PlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-06-30</instant>
        </period>
    </context>
    <context id="c-234">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-04-01</startDate>
            <endDate>2023-04-30</endDate>
        </period>
    </context>
    <context id="c-235">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019AmendedPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-04-30</instant>
        </period>
    </context>
    <context id="c-236">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2019And2024InducementPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-237">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-238">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-239">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-240">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-241">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-242">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-243">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-244">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="c-245">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="c-246">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-01-31</endDate>
        </period>
    </context>
    <context id="c-247">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-248">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-249">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-250">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-251">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-252">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceShareUnitsPSUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-253">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-254">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-255">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-256">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PBOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="c-257">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="c-258">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cdxs:A2022PSUAnd2022PBOMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VestingAxis">us-gaap:ShareBasedCompensationAwardTrancheTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c-259">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-260">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-261">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-262">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-263">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-264">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-265">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-266">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:RSUsAndRSAsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-267">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-268">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-269">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-270">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-271">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-272">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-273">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-274">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2024-10-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-275">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-276">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:GranteeStatusAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-277">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-278">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:ShareBasedPaymentArrangementNonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-279">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-280">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-281">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-282">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-283">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-284">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-285">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-286">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-287">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-288">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-289">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-290">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-291">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-292">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-293">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-294">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-295">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-296">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-297">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-298">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-299">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-300">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cdxs:PerformanceBasedOptionsPBOsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-301">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2023-02-27</instant>
        </period>
    </context>
    <context id="c-302">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-05-31</endDate>
        </period>
    </context>
    <context id="c-303">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:PiperSandlerCoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-05-31</instant>
        </period>
    </context>
    <context id="c-304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">cdxs:CantorSalesAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-02</startDate>
            <endDate>2024-05-02</endDate>
        </period>
    </context>
    <context id="c-305">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">cdxs:CantorSalesAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-02</instant>
        </period>
    </context>
    <context id="c-306">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:CantorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-307">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cdxs:CantorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-308">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2005-01-01</startDate>
            <endDate>2005-01-31</endDate>
        </period>
    </context>
    <context id="c-309">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-310">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-311">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-312">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A400PenoscotMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-313">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-314">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:PenobscotSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-12-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-315">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A200220PenobscotMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:PenobscotSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-316">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:ChesapeakeSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-12-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-317">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:A501ChesapeakeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cdxs:ChesapeakeSpaceFiveYearRenewalOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-318">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-319">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-320">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis">cdxs:SanCarlosMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-09-30</endDate>
        </period>
    </context>
    <context id="c-321">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-322">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsAxis">us-gaap:DemandDepositsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-323">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-06-30</instant>
        </period>
    </context>
    <context id="c-324">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-06-30</instant>
        </period>
    </context>
    <context id="c-325">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-06-30</startDate>
            <endDate>2017-06-30</endDate>
        </period>
    </context>
    <context id="c-326">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-327">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-328">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">us-gaap:IndemnificationGuaranteeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-329">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-02-13</startDate>
            <endDate>2024-02-13</endDate>
        </period>
    </context>
    <context id="c-330">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanFirstTrancheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-332">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanSecondTrancheMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-333">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-334">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-335">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:TermLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-336">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-337">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-338">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-339">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cdxs:InnovatusLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-340">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">cdxs:InnovatusLoanWarrantsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:SecuredDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-13</instant>
        </period>
    </context>
    <context id="c-341">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-342">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-343">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-344">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-345">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-346">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-347">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-348">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerEMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueProductLineMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-349">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-350">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-351">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-352">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerDMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-353">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerFMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-354">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerGMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-355">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-356">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cdxs:CustomerIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-357">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-358">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-359">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-360">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-361">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-362">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IE</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-363">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-364">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-365">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CH</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-366">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-367">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-368">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-369">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-370">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-371">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:IN</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-372">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-373">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-374">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-375">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-376">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-377">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-07-01</startDate>
            <endDate>2023-07-31</endDate>
        </period>
    </context>
    <context id="c-378">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-379">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-11-01</startDate>
            <endDate>2022-11-30</endDate>
        </period>
    </context>
    <context id="c-380">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-381">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001200375</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="segment">
        <measure>cdxs:segment</measure>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="payment">
        <measure>cdxs:payment</measure>
    </unit>
    <unit id="plan">
        <measure>cdxs:plan</measure>
    </unit>
    <unit id="installment">
        <measure>cdxs:installment</measure>
    </unit>
    <unit id="time">
        <measure>cdxs:time</measure>
    </unit>
    <unit id="executive">
        <measure>cdxs:executive</measure>
    </unit>
    <unit id="security">
        <measure>cdxs:security</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="renewal_option">
        <measure>cdxs:renewal_option</measure>
    </unit>
    <unit id="tranche">
        <measure>cdxs:tranche</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-32">0001200375</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="c-1" id="f-33">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus contextRef="c-1" id="f-34">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus contextRef="c-1" id="f-35">FY</dei:DocumentFiscalPeriodFocus>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-75" id="f-533">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-76" id="f-534">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-77" id="f-535">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="c-78" id="f-536">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:InvestmentVariableInterestRateTypeExtensibleEnumeration contextRef="c-334" id="f-1307">http://fasb.org/us-gaap/2024#PrimeRateMember</us-gaap:InvestmentVariableInterestRateTypeExtensibleEnumeration>
    <us-gaap:InvestmentVariableInterestRateTypeExtensibleEnumeration contextRef="c-335" id="f-1310">http://fasb.org/us-gaap/2024#PrimeRateMember</us-gaap:InvestmentVariableInterestRateTypeExtensibleEnumeration>
    <dei:DocumentType contextRef="c-1" id="f-1">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="c-1" id="f-2">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-4">2024-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate contextRef="c-1" id="f-3">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport contextRef="c-1" id="f-5">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="c-1" id="f-6">001-34705</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="c-1" id="f-7">Codexis,&#160;Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-8">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-9">71-0872999</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-10">200 Penobscot Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-11">Redwood City</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-12">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-13">94063</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-14">650</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-15">421-8100</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="c-1" id="f-16">Common Stock, par value $0.0001 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="c-1" id="f-17">CDXS</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="c-1" id="f-18">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="c-1" id="f-19">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="c-1" id="f-20">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="c-1" id="f-21">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="c-1" id="f-22">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="c-1" id="f-23">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="c-1" id="f-24">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-25">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="c-1" id="f-26">true</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag contextRef="c-1" id="f-27">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany contextRef="c-1" id="f-28">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="c-2" decimals="-5" id="f-29" unitRef="usd">152400000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="INF" id="f-30" unitRef="shares">82837311</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock contextRef="c-1" id="f-31">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;Portions of the registrant&#x2019;s Definitive Proxy Statement to be filed with the Commission pursuant to Regulation 14A in connection with the registrant&#x2019;s 2025 Annual Meeting of Stockholders (the &#x201c;2025 Proxy Statement&#x201d;), to be filed subsequent to the date hereof, are incorporated by reference into Part III of this Report. Such Definitive Proxy Statement will be filed with the Securities and Exchange Commission not later than 120 days after the conclusion of the registrant&#x2019;s fiscal year ended December&#160;31, 2024. Except with respect to information specifically incorporated by reference in this Form 10-K, the 2025 Proxy Statement is not deemed to be filed as part of this Form 10-K.&lt;br/&gt;&lt;/span&gt;</dei:DocumentsIncorporatedByReferenceTextBlock>
    <cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock contextRef="c-1" id="f-36">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Risk Management and Strategy&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the normal course of business, we may collect and store personal information and other sensitive information, including proprietary and confidential business information, trade secrets, intellectual property, sensitive third-party information and employee information.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We assess and identify cybersecurity risk to such information by maintaining cybersecurity policies that require continuous monitoring and detection programs and network security precautions. Our program incorporates industry-standard frameworks, policies and practices designed to protect the privacy and security of our sensitive information. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We manage cybersecurity risks by maintaining various protections designed to safeguard against cyberattacks, including firewalls and virus detection software, and periodic end user training on common cybersecurity threats (e.g. phishing exercises and interactive trainings). We have established our disaster recovery plan and we protect against business interruption by backing up our major systems. In addition, we periodically scan our environment for any vulnerabilities, perform penetration testing and engage third parties to assess effectiveness of our data security practices. A third party security consultant conducts regular network security reviews, scans and audits, and we may consult with other external experts as warranted by a particular cybersecurity incident or threat. In addition, we maintain insurance that includes cybersecurity coverage.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Areas of cybersecurity risk are assessed bi-annually, and updates are reported by our Chief Financial Officer to the Board&#x2019;s Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually. In this way, our program to manage cybersecurity risk integrates with our overall risk management processes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;With respect to third parties who provide services affecting critical business management systems, we collect and maintain SOC2 or SOC1 type II reports (attestation of controls at a service organization over a minimum six-month period). For other third-party service providers, cybersecurity risk is addressed as appropriate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of the date of this report, we are not aware of any risks from cybersecurity threats that have materially affected or are reasonably likely to materially affect us, including our business strategy, results of operations and financial condition. Despite the implementation of our cybersecurity program, our security measures cannot guarantee that a significant cyberattack will not occur. A successful attack on our information technology systems could have significant consequences to the business. While we devote resources to our security measures to protect our systems and information, these measures cannot provide absolute security. See &#x201c;Risk Factors &#x2013; General Risk Factors&#x201d; for additional information about the risks to our business associated with a breach or compromise to our information technology systems.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock>
    <cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock contextRef="c-1" id="f-37">&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the normal course of business, we may collect and store personal information and other sensitive information, including proprietary and confidential business information, trade secrets, intellectual property, sensitive third-party information and employee information.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;We assess and identify cybersecurity risk to such information by maintaining cybersecurity policies that require continuous monitoring and detection programs and network security precautions. Our program incorporates industry-standard frameworks, policies and practices designed to protect the privacy and security of our sensitive information.</cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock>
    <cyd:CybersecurityRiskManagementProcessesIntegratedFlag contextRef="c-1" id="f-38">true</cyd:CybersecurityRiskManagementProcessesIntegratedFlag>
    <cyd:CybersecurityRiskManagementThirdPartyEngagedFlag contextRef="c-1" id="f-39">true</cyd:CybersecurityRiskManagementThirdPartyEngagedFlag>
    <cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag contextRef="c-1" id="f-40">true</cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag>
    <cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag contextRef="c-1" id="f-41">false</cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag>
    <cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock contextRef="c-1" id="f-42">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Governance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s Board of Directors has visibility into cybersecurity risks through its Audit Committee and through the process described below. The Audit Committee has oversight of the Company&#x2019;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#x2019;s computerized information system controls and security.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Areas of cybersecurity risk are assessed bi-annually, and updates are reported by the Chief Financial Officer to the Audit Committee and senior management annually. Where our bi-annual cybersecurity risk assessment identifies areas for improvement, we document and track our remediation activities, which are also reported to the Audit Committee and senior management annually.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Senior management has appointed a Cybersecurity Council that is responsible for identifying, escalating, and facilitating the assessment and determination of the materiality of cybersecurity incidents and threats. The Cybersecurity Council is made up of representatives of IT, Legal and Finance, as well as ad hoc additional members depending on the circumstances of the incident or threat. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The members of the Cybersecurity Council do not have specific expertise in cybersecurity risk other than the Vice President of Information Technology (&#x201c;VP IT&#x201d;) who has more than 20 years of experience, and engages with trusted third-party experts for support and guidance when additional expertise is required. In December 2024, the VP IT exited the company, and IT expert advice to the Cybersecurity Council is currently provided by an external cybersecurity specialist. This specialist has extensive experience managing cybersecurity functions in his prior external roles, where he was responsible for overseeing cybersecurity strategy and operations, including incident response, threat intelligence, security awareness training programs, risk assessments and remediation, and regulatory and compliance matters.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;An actual or suspected cybersecurity incident that jeopardizes the confidentiality, integrity, or availability of Codexis' information systems or any information residing therein (or threat that presents significant risk to our information systems as identified by IT) is reported to the Cybersecurity Council by our IT Department. The focus of the Cybersecurity Council is on the investigation and facilitation of senior management&#x2019;s assessment and determination of materiality of an incident or threat, and such investigation is separate but contemporaneous with the investigation(s) done under other applicable programs, policies, and plans regarding cybersecurity. The Cybersecurity Council will liaise directly with other investigation(s) and share information and assessments. Along with assistance from the Cybersecurity Council as necessary, senior management reports its materiality determination and analysis, including necessary facts to support its determination, to the Audit Committee of the Board of Directors. Pursuant to its charter, the Audit Committee may, along with senior management, report such determination to the Board of Directors.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock>
    <cyd:CybersecurityRiskRoleOfManagementTextBlock contextRef="c-1" id="f-43">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s Board of Directors has visibility into cybersecurity risks through its Audit Committee and through the process described below. The Audit Committee has oversight of the Company&#x2019;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#x2019;s computerized information system controls and security.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskRoleOfManagementTextBlock>
    <cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock contextRef="c-1" id="f-45">The Audit Committee has oversight of the Company&#x2019;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#x2019;s computerized information system controls and security.</cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock contextRef="c-1" id="f-44">The Audit Committee has oversight of the Company&#x2019;s cybersecurity risk management programs and the design and operating effectiveness thereof, and reviews reports from Company management on cybersecurity, data privacy and other risks relevant to the Company&#x2019;s computerized information system controls and security.</cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock contextRef="c-1" id="f-46">Senior management has appointed a Cybersecurity Council that is responsible for identifying, escalating, and facilitating the assessment and determination of the materiality of cybersecurity incidents and threats. The Cybersecurity Council is made up of representatives of IT, Legal and Finance, as well as ad hoc additional members depending on the circumstances of the incident or threat.</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag contextRef="c-1" id="f-47">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag>
    <cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock contextRef="c-1" id="f-48">&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The members of the Cybersecurity Council do not have specific expertise in cybersecurity risk other than the Vice President of Information Technology (&#x201c;VP IT&#x201d;) who has more than 20 years of experience, and engages with trusted third-party experts for support and guidance when additional expertise is required. In December 2024, the VP IT exited the company, and IT expert advice to the Cybersecurity Council is currently provided by an external cybersecurity specialist. This specialist has extensive experience managing cybersecurity functions in his prior external roles, where he was responsible for overseeing cybersecurity strategy and operations, including incident response, threat intelligence, security awareness training programs, risk assessments and remediation, and regulatory and compliance matters.&lt;/span&gt;</cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock>
    <cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock contextRef="c-1" id="f-49">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;An actual or suspected cybersecurity incident that jeopardizes the confidentiality, integrity, or availability of Codexis' information systems or any information residing therein (or threat that presents significant risk to our information systems as identified by IT) is reported to the Cybersecurity Council by our IT Department. The focus of the Cybersecurity Council is on the investigation and facilitation of senior management&#x2019;s assessment and determination of materiality of an incident or threat, and such investigation is separate but contemporaneous with the investigation(s) done under other applicable programs, policies, and plans regarding cybersecurity. The Cybersecurity Council will liaise directly with other investigation(s) and share information and assessments. Along with assistance from the Cybersecurity Council as necessary, senior management reports its materiality determination and analysis, including necessary facts to support its determination, to the Audit Committee of the Board of Directors. Pursuant to its charter, the Audit Committee may, along with senior management, report such determination to the Board of Directors.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag contextRef="c-1" id="f-50">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag>
    <dei:AuditorName contextRef="c-1" id="f-51">KPMG LLP</dei:AuditorName>
    <dei:AuditorLocation contextRef="c-1" id="f-52">San Francisco, CA</dei:AuditorLocation>
    <dei:AuditorFirmId contextRef="c-1" id="f-53">185</dei:AuditorFirmId>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-4" decimals="-3" id="f-54" unitRef="usd">19264000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="-3" id="f-55" unitRef="usd">65116000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCash contextRef="c-4" decimals="-3" id="f-56" unitRef="usd">503000</us-gaap:RestrictedCash>
    <us-gaap:RestrictedCash contextRef="c-5" decimals="-3" id="f-57" unitRef="usd">519000</us-gaap:RestrictedCash>
    <us-gaap:ShortTermInvestments contextRef="c-4" decimals="-3" id="f-58" unitRef="usd">54194000</us-gaap:ShortTermInvestments>
    <us-gaap:ShortTermInvestments contextRef="c-5" decimals="-3" id="f-59" unitRef="usd">0</us-gaap:ShortTermInvestments>
    <us-gaap:AccountsReceivableGrossCurrent contextRef="c-4" decimals="-3" id="f-60" unitRef="usd">11920000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:AccountsReceivableGrossCurrent contextRef="c-5" decimals="-3" id="f-61" unitRef="usd">10036000</us-gaap:AccountsReceivableGrossCurrent>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-4" decimals="-3" id="f-62" unitRef="usd">4375000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-5" decimals="-3" id="f-63" unitRef="usd">815000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-4" decimals="-3" id="f-64" unitRef="usd">2751000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-5" decimals="-3" id="f-65" unitRef="usd">9142000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:NotesReceivableGross contextRef="c-4" decimals="-3" id="f-66" unitRef="usd">19046000</us-gaap:NotesReceivableGross>
    <us-gaap:NotesReceivableGross contextRef="c-5" decimals="-3" id="f-67" unitRef="usd">19993000</us-gaap:NotesReceivableGross>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-4" decimals="-3" id="f-68" unitRef="usd">162000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AllowanceForNotesAndLoansReceivableCurrent contextRef="c-5" decimals="-3" id="f-69" unitRef="usd">65000</us-gaap:AllowanceForNotesAndLoansReceivableCurrent>
    <us-gaap:AccountsNotesAndLoansReceivableNetCurrent contextRef="c-4" decimals="-3" id="f-70" unitRef="usd">18884000</us-gaap:AccountsNotesAndLoansReceivableNetCurrent>
    <us-gaap:AccountsNotesAndLoansReceivableNetCurrent contextRef="c-5" decimals="-3" id="f-71" unitRef="usd">19928000</us-gaap:AccountsNotesAndLoansReceivableNetCurrent>
    <us-gaap:InventoryNet contextRef="c-4" decimals="-3" id="f-72" unitRef="usd">1799000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-5" decimals="-3" id="f-73" unitRef="usd">2685000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-4" decimals="-3" id="f-74" unitRef="usd">4128000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-5" decimals="-3" id="f-75" unitRef="usd">5218000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-4" decimals="-3" id="f-76" unitRef="usd">98772000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-5" decimals="-3" id="f-77" unitRef="usd">93466000</us-gaap:AssetsCurrent>
    <us-gaap:RestrictedCashAndCashEquivalentsNoncurrent contextRef="c-4" decimals="-3" id="f-78" unitRef="usd">1062000</us-gaap:RestrictedCashAndCashEquivalentsNoncurrent>
    <us-gaap:RestrictedCashAndCashEquivalentsNoncurrent contextRef="c-5" decimals="-3" id="f-79" unitRef="usd">1062000</us-gaap:RestrictedCashAndCashEquivalentsNoncurrent>
    <us-gaap:InvestmentsAndOtherNoncurrentAssets contextRef="c-4" decimals="-3" id="f-80" unitRef="usd">2798000</us-gaap:InvestmentsAndOtherNoncurrentAssets>
    <us-gaap:InvestmentsAndOtherNoncurrentAssets contextRef="c-5" decimals="-3" id="f-81" unitRef="usd">9700000</us-gaap:InvestmentsAndOtherNoncurrentAssets>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-4" decimals="-3" id="f-82" unitRef="usd">28700000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-5" decimals="-3" id="f-83" unitRef="usd">13137000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-4" decimals="-3" id="f-84" unitRef="usd">14197000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-5" decimals="-3" id="f-85" unitRef="usd">15487000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Goodwill contextRef="c-4" decimals="-3" id="f-86" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-87" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-4" decimals="-3" id="f-88" unitRef="usd">1019000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-5" decimals="-3" id="f-89" unitRef="usd">1246000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets contextRef="c-4" decimals="-3" id="f-90" unitRef="usd">149011000</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-5" decimals="-3" id="f-91" unitRef="usd">136561000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent contextRef="c-4" decimals="-3" id="f-92" unitRef="usd">2838000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent contextRef="c-5" decimals="-3" id="f-93" unitRef="usd">5947000</us-gaap:AccountsPayableCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-94" unitRef="usd">11410000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-95" unitRef="usd">11246000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-96" unitRef="usd">6223000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-97" unitRef="usd">4735000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-4" decimals="-3" id="f-98" unitRef="usd">2827000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-5" decimals="-3" id="f-99" unitRef="usd">3781000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-4" decimals="-3" id="f-100" unitRef="usd">350000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-5" decimals="-3" id="f-101" unitRef="usd">10121000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-102" unitRef="usd">23648000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-103" unitRef="usd">35830000</us-gaap:LiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent contextRef="c-4" decimals="-3" id="f-104" unitRef="usd">100000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent contextRef="c-5" decimals="-3" id="f-105" unitRef="usd">640000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-4" decimals="-3" id="f-106" unitRef="usd">28163000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-5" decimals="-3" id="f-107" unitRef="usd">12243000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:LongTermDebtNoncurrent contextRef="c-4" decimals="-3" id="f-108" unitRef="usd">28905000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent contextRef="c-5" decimals="-3" id="f-109" unitRef="usd">0</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-4" decimals="-3" id="f-110" unitRef="usd">1268000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-5" decimals="-3" id="f-111" unitRef="usd">1233000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities contextRef="c-4" decimals="-3" id="f-112" unitRef="usd">82084000</us-gaap:Liabilities>
    <us-gaap:Liabilities contextRef="c-5" decimals="-3" id="f-113" unitRef="usd">49946000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies contextRef="c-4" id="f-114" unitRef="usd" xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies contextRef="c-5" id="f-115" unitRef="usd" xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-5"
      decimals="INF"
      id="f-116"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-4"
      decimals="INF"
      id="f-117"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-4" decimals="INF" id="f-118" unitRef="shares">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-5" decimals="INF" id="f-119" unitRef="shares">5000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued contextRef="c-4" decimals="INF" id="f-120" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued contextRef="c-5" decimals="INF" id="f-121" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-5" decimals="INF" id="f-122" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-4" decimals="INF" id="f-123" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValue contextRef="c-4" decimals="-3" id="f-124" unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue contextRef="c-5" decimals="-3" id="f-125" unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-5"
      decimals="INF"
      id="f-126"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-4"
      decimals="INF"
      id="f-127"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-4" decimals="INF" id="f-128" unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-5" decimals="INF" id="f-129" unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued contextRef="c-4" decimals="INF" id="f-130" unitRef="shares">81850000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-4" decimals="INF" id="f-131" unitRef="shares">81850000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued contextRef="c-5" decimals="-3" id="f-132" unitRef="shares">69905000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-5" decimals="-3" id="f-133" unitRef="shares">69905000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue contextRef="c-4" decimals="-3" id="f-134" unitRef="usd">8000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue contextRef="c-5" decimals="-3" id="f-135" unitRef="usd">7000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital contextRef="c-4" decimals="-3" id="f-136" unitRef="usd">629673000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital contextRef="c-5" decimals="-3" id="f-137" unitRef="usd">584138000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c-4" decimals="-3" id="f-138" unitRef="usd">52000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c-5" decimals="-3" id="f-139" unitRef="usd">0</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-4" decimals="-3" id="f-140" unitRef="usd">-562806000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-5" decimals="-3" id="f-141" unitRef="usd">-497530000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity contextRef="c-4" decimals="-3" id="f-142" unitRef="usd">66927000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-5" decimals="-3" id="f-143" unitRef="usd">86615000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-4" decimals="-3" id="f-144" unitRef="usd">149011000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-5" decimals="-3" id="f-145" unitRef="usd">136561000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-6" decimals="-3" id="f-146" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-7" decimals="-3" id="f-147" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-8" decimals="-3" id="f-148" unitRef="usd">514000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-9" decimals="-3" id="f-149" unitRef="usd">36786000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-10" decimals="-3" id="f-150" unitRef="usd">42906000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-11" decimals="-3" id="f-151" unitRef="usd">116676000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-12" decimals="-3" id="f-152" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-13" decimals="-3" id="f-153" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-14" decimals="-3" id="f-154" unitRef="usd">1245000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-15" decimals="-3" id="f-155" unitRef="usd">22559000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-16" decimals="-3" id="f-156" unitRef="usd">27237000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-17" decimals="-3" id="f-157" unitRef="usd">21914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-158" unitRef="usd">59345000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-18" decimals="-3" id="f-159" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-19" decimals="-3" id="f-160" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-1" decimals="-3" id="f-161" unitRef="usd">16288000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-18" decimals="-3" id="f-162" unitRef="usd">12809000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-19" decimals="-3" id="f-163" unitRef="usd">38033000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-1" decimals="-3" id="f-164" unitRef="usd">46263000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-18" decimals="-3" id="f-165" unitRef="usd">58885000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-19" decimals="-3" id="f-166" unitRef="usd">80099000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-1" decimals="-3" id="f-167" unitRef="usd">55148000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-18" decimals="-3" id="f-168" unitRef="usd">53250000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-19" decimals="-3" id="f-169" unitRef="usd">52172000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:RestructuringCharges contextRef="c-1" decimals="-3" id="f-170" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-18" decimals="-3" id="f-171" unitRef="usd">3284000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-19" decimals="-3" id="f-172" unitRef="usd">3167000</us-gaap:RestructuringCharges>
    <us-gaap:AssetImpairmentCharges contextRef="c-1" decimals="-3" id="f-173" unitRef="usd">165000</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges contextRef="c-18" decimals="-3" id="f-174" unitRef="usd">9984000</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges contextRef="c-19" decimals="-3" id="f-175" unitRef="usd">0</us-gaap:AssetImpairmentCharges>
    <us-gaap:CostsAndExpenses contextRef="c-1" decimals="-3" id="f-176" unitRef="usd">117864000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses contextRef="c-18" decimals="-3" id="f-177" unitRef="usd">138212000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses contextRef="c-19" decimals="-3" id="f-178" unitRef="usd">173471000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="-3" id="f-179" unitRef="usd">-58519000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-18" decimals="-3" id="f-180" unitRef="usd">-68069000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-19" decimals="-3" id="f-181" unitRef="usd">-34881000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest contextRef="c-1" decimals="-3" id="f-182" unitRef="usd">3670000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest contextRef="c-18" decimals="-3" id="f-183" unitRef="usd">4172000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest contextRef="c-19" decimals="-3" id="f-184" unitRef="usd">1441000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-20" decimals="-3" id="f-185" unitRef="usd">0</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-21" decimals="-3" id="f-186" unitRef="usd">0</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-22" decimals="-3" id="f-187" unitRef="usd">208000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-1" decimals="-3" id="f-188" unitRef="usd">-10393000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-18" decimals="-3" id="f-189" unitRef="usd">-12274000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-19" decimals="-3" id="f-190" unitRef="usd">124000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-191" unitRef="usd">-65242000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-18" decimals="-3" id="f-192" unitRef="usd">-76171000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-19" decimals="-3" id="f-193" unitRef="usd">-33316000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-194" unitRef="usd">34000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-195" unitRef="usd">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-196" unitRef="usd">276000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-197" unitRef="usd">-65276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-18" decimals="-3" id="f-198" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-19" decimals="-3" id="f-199" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-1"
      decimals="2"
      id="f-200"
      unitRef="usdPerShare">-0.89</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-1"
      decimals="2"
      id="f-201"
      unitRef="usdPerShare">-0.89</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-18"
      decimals="2"
      id="f-202"
      unitRef="usdPerShare">-1.12</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-18"
      decimals="2"
      id="f-203"
      unitRef="usdPerShare">-1.12</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-19"
      decimals="2"
      id="f-204"
      unitRef="usdPerShare">-0.51</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-19"
      decimals="2"
      id="f-205"
      unitRef="usdPerShare">-0.51</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="-3" id="f-206" unitRef="shares">73408000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="-3" id="f-207" unitRef="shares">73408000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-18" decimals="-3" id="f-208" unitRef="shares">68131000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-18" decimals="-3" id="f-209" unitRef="shares">68131000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-19" decimals="-3" id="f-210" unitRef="shares">65344000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-19" decimals="-3" id="f-211" unitRef="shares">65344000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-212" unitRef="usd">-65276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-18" decimals="-3" id="f-213" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-19" decimals="-3" id="f-214" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-1" decimals="-3" id="f-215" unitRef="usd">52000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-18" decimals="-3" id="f-216" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-19" decimals="-3" id="f-217" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-1" decimals="-3" id="f-218" unitRef="usd">-65224000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-18" decimals="-3" id="f-219" unitRef="usd">-76240000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-19" decimals="-3" id="f-220" unitRef="usd">-33592000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:SharesOutstanding contextRef="c-23" decimals="-3" id="f-221" unitRef="shares">65109000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-23" decimals="-3" id="f-222" unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-24" decimals="-3" id="f-223" unitRef="usd">552083000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-25" decimals="-3" id="f-224" unitRef="usd">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-26" decimals="-3" id="f-225" unitRef="usd">-387698000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-27" decimals="-3" id="f-226" unitRef="usd">164391000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-28" decimals="-3" id="f-227" unitRef="shares">410000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-29" decimals="-3" id="f-228" unitRef="usd">955000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-19" decimals="-3" id="f-229" unitRef="usd">955000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther contextRef="c-28" decimals="-3" id="f-230" unitRef="shares">373000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-29" decimals="-3" id="f-231" unitRef="usd">14531000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-19" decimals="-3" id="f-232" unitRef="usd">14531000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="c-28" decimals="-3" id="f-233" unitRef="shares">81000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-29" decimals="-3" id="f-234" unitRef="usd">1488000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-19" decimals="-3" id="f-235" unitRef="usd">1488000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetIncomeLoss contextRef="c-30" decimals="-3" id="f-236" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-19" decimals="-3" id="f-237" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding contextRef="c-31" decimals="-3" id="f-238" unitRef="shares">65811000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-31" decimals="-3" id="f-239" unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-32" decimals="-3" id="f-240" unitRef="usd">566081000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-33" decimals="-3" id="f-241" unitRef="usd">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-34" decimals="-3" id="f-242" unitRef="usd">-421290000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-35" decimals="-3" id="f-243" unitRef="usd">144797000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-36" decimals="-3" id="f-244" unitRef="shares">283000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-37" decimals="-3" id="f-245" unitRef="usd">559000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-18" decimals="-3" id="f-246" unitRef="usd">559000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther contextRef="c-36" decimals="-3" id="f-247" unitRef="shares">796000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:PaymentsOfStockIssuanceCosts contextRef="c-18" decimals="-3" id="f-248" unitRef="usd">721000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="c-36" decimals="-3" id="f-249" unitRef="shares">3080000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-36" decimals="-3" id="f-250" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-37" decimals="-3" id="f-251" unitRef="usd">7931000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-18" decimals="-3" id="f-252" unitRef="usd">7932000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-37" decimals="-3" id="f-253" unitRef="usd">9971000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-18" decimals="-3" id="f-254" unitRef="usd">9971000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="c-36" decimals="-3" id="f-255" unitRef="shares">65000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-37" decimals="-3" id="f-256" unitRef="usd">404000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-18" decimals="-3" id="f-257" unitRef="usd">404000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetIncomeLoss contextRef="c-38" decimals="-3" id="f-258" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-18" decimals="-3" id="f-259" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding contextRef="c-39" decimals="-3" id="f-260" unitRef="shares">69905000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-39" decimals="-3" id="f-261" unitRef="usd">7000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-40" decimals="-3" id="f-262" unitRef="usd">584138000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-41" decimals="-3" id="f-263" unitRef="usd">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-42" decimals="-3" id="f-264" unitRef="usd">-497530000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-5" decimals="-3" id="f-265" unitRef="usd">86615000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-43" decimals="-3" id="f-266" unitRef="shares">399000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-44" decimals="-3" id="f-267" unitRef="usd">1291000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-1" decimals="-3" id="f-268" unitRef="usd">1291000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesOther contextRef="c-43" decimals="-3" id="f-269" unitRef="shares">842000</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued contextRef="c-44" decimals="-3" id="f-270" unitRef="usd">859000</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued contextRef="c-1" decimals="-3" id="f-271" unitRef="usd">859000</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans contextRef="c-43" decimals="-3" id="f-272" unitRef="shares">264000</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan contextRef="c-44" decimals="-3" id="f-273" unitRef="usd">563000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan contextRef="c-1" decimals="-3" id="f-274" unitRef="usd">563000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:PaymentsOfStockIssuanceCosts contextRef="c-1" decimals="-3" id="f-275" unitRef="usd">1584000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="c-43" decimals="-3" id="f-276" unitRef="shares">10440000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-43" decimals="-3" id="f-277" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-44" decimals="-3" id="f-278" unitRef="usd">29735000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="c-1" decimals="-3" id="f-279" unitRef="usd">29736000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-44" decimals="-3" id="f-280" unitRef="usd">13087000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-1" decimals="-3" id="f-281" unitRef="usd">13087000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss contextRef="c-45" decimals="-3" id="f-282" unitRef="usd">-65276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-283" unitRef="usd">-65276000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-46" decimals="-3" id="f-284" unitRef="usd">52000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-285" unitRef="usd">52000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:SharesOutstanding contextRef="c-47" decimals="-3" id="f-286" unitRef="shares">81850000</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity contextRef="c-47" decimals="-3" id="f-287" unitRef="usd">8000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-48" decimals="-3" id="f-288" unitRef="usd">629673000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-49" decimals="-3" id="f-289" unitRef="usd">52000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-50" decimals="-3" id="f-290" unitRef="usd">-562806000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-4" decimals="-3" id="f-291" unitRef="usd">66927000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-292" unitRef="usd">-65276000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-18" decimals="-3" id="f-293" unitRef="usd">-76240000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-19" decimals="-3" id="f-294" unitRef="usd">-33592000</us-gaap:NetIncomeLoss>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-1" decimals="-3" id="f-295" unitRef="usd">4946000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-18" decimals="-3" id="f-296" unitRef="usd">5518000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-19" decimals="-3" id="f-297" unitRef="usd">5402000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-1" decimals="-3" id="f-298" unitRef="usd">3184000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-18" decimals="-3" id="f-299" unitRef="usd">4405000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-19" decimals="-3" id="f-300" unitRef="usd">4849000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="-3" id="f-301" unitRef="usd">13087000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-18" decimals="-3" id="f-302" unitRef="usd">9971000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-19" decimals="-3" id="f-303" unitRef="usd">14531000</us-gaap:ShareBasedCompensation>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-1" decimals="-3" id="f-304" unitRef="usd">97000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-18" decimals="-3" id="f-305" unitRef="usd">-65000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-19" decimals="-3" id="f-306" unitRef="usd">4000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AssetImpairmentCharges contextRef="c-1" decimals="-3" id="f-307" unitRef="usd">165000</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges contextRef="c-18" decimals="-3" id="f-308" unitRef="usd">9984000</us-gaap:AssetImpairmentCharges>
    <us-gaap:AssetImpairmentCharges contextRef="c-19" decimals="-3" id="f-309" unitRef="usd">0</us-gaap:AssetImpairmentCharges>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-1" decimals="-3" id="f-310" unitRef="usd">6902000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-18" decimals="-3" id="f-311" unitRef="usd">12215000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-19" decimals="-3" id="f-312" unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:OtherNoncashIncome contextRef="c-20" decimals="-3" id="f-313" unitRef="usd">0</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-21" decimals="-3" id="f-314" unitRef="usd">0</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-22" decimals="-3" id="f-315" unitRef="usd">1245000</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-1" decimals="-3" id="f-316" unitRef="usd">0</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-18" decimals="-3" id="f-317" unitRef="usd">213000</us-gaap:OtherNoncashIncome>
    <us-gaap:OtherNoncashIncome contextRef="c-19" decimals="-3" id="f-318" unitRef="usd">1245000</us-gaap:OtherNoncashIncome>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-20" decimals="-3" id="f-319" unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-21" decimals="-3" id="f-320" unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-22" decimals="-3" id="f-321" unitRef="usd">-208000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-1" decimals="-3" id="f-322" unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-18" decimals="-3" id="f-323" unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss contextRef="c-19" decimals="-3" id="f-324" unitRef="usd">208000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:AmortizationOfFinancingCosts contextRef="c-1" decimals="-3" id="f-325" unitRef="usd">885000</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts contextRef="c-18" decimals="-3" id="f-326" unitRef="usd">0</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts contextRef="c-19" decimals="-3" id="f-327" unitRef="usd">0</us-gaap:AmortizationOfFinancingCosts>
    <cdxs:AmortizationOfDiscountOnShortTermInvestments contextRef="c-1" decimals="-3" id="f-328" unitRef="usd">-1380000</cdxs:AmortizationOfDiscountOnShortTermInvestments>
    <cdxs:AmortizationOfDiscountOnShortTermInvestments contextRef="c-18" decimals="-3" id="f-329" unitRef="usd">0</cdxs:AmortizationOfDiscountOnShortTermInvestments>
    <cdxs:AmortizationOfDiscountOnShortTermInvestments contextRef="c-19" decimals="-3" id="f-330" unitRef="usd">0</cdxs:AmortizationOfDiscountOnShortTermInvestments>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement contextRef="c-1" decimals="-3" id="f-331" unitRef="usd">-4000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement contextRef="c-18" decimals="-3" id="f-332" unitRef="usd">4000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:OtherOperatingActivitiesCashFlowStatement contextRef="c-19" decimals="-3" id="f-333" unitRef="usd">-29000</us-gaap:OtherOperatingActivitiesCashFlowStatement>
    <us-gaap:IncreaseDecreaseInFinanceReceivables contextRef="c-1" decimals="-3" id="f-334" unitRef="usd">-1252000</us-gaap:IncreaseDecreaseInFinanceReceivables>
    <us-gaap:IncreaseDecreaseInFinanceReceivables contextRef="c-18" decimals="-3" id="f-335" unitRef="usd">-20247000</us-gaap:IncreaseDecreaseInFinanceReceivables>
    <us-gaap:IncreaseDecreaseInFinanceReceivables contextRef="c-19" decimals="-3" id="f-336" unitRef="usd">3225000</us-gaap:IncreaseDecreaseInFinanceReceivables>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-1" decimals="-3" id="f-337" unitRef="usd">-886000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-18" decimals="-3" id="f-338" unitRef="usd">656000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-19" decimals="-3" id="f-339" unitRef="usd">869000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-1" decimals="-3" id="f-340" unitRef="usd">-893000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-18" decimals="-3" id="f-341" unitRef="usd">865000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-19" decimals="-3" id="f-342" unitRef="usd">-181000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-1" decimals="-3" id="f-343" unitRef="usd">-2567000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-18" decimals="-3" id="f-344" unitRef="usd">2287000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-19" decimals="-3" id="f-345" unitRef="usd">207000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities contextRef="c-1" decimals="-3" id="f-346" unitRef="usd">-1982000</cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities>
    <cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities contextRef="c-18" decimals="-3" id="f-347" unitRef="usd">14041000</cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities>
    <cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities contextRef="c-19" decimals="-3" id="f-348" unitRef="usd">-5983000</cdxs:IncreaseDecreaseInEmployeeRelatedLiabilitiesAndOtherAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities contextRef="c-1" decimals="-3" id="f-349" unitRef="usd">-4151000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities contextRef="c-18" decimals="-3" id="f-350" unitRef="usd">-5341000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities contextRef="c-19" decimals="-3" id="f-351" unitRef="usd">-5223000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-1" decimals="-3" id="f-352" unitRef="usd">-10311000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-18" decimals="-3" id="f-353" unitRef="usd">-19848000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-19" decimals="-3" id="f-354" unitRef="usd">24518000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-1" decimals="-3" id="f-355" unitRef="usd">-49410000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-18" decimals="-3" id="f-356" unitRef="usd">-52638000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-19" decimals="-3" id="f-357" unitRef="usd">11284000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-358" unitRef="usd">4305000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-18" decimals="-3" id="f-359" unitRef="usd">4418000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-19" decimals="-3" id="f-360" unitRef="usd">8307000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-361" unitRef="usd">87000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-18" decimals="-3" id="f-362" unitRef="usd">751000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-19" decimals="-3" id="f-363" unitRef="usd">29000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireShortTermInvestments contextRef="c-1" decimals="-3" id="f-364" unitRef="usd">90235000</us-gaap:PaymentsToAcquireShortTermInvestments>
    <us-gaap:PaymentsToAcquireShortTermInvestments contextRef="c-18" decimals="-3" id="f-365" unitRef="usd">0</us-gaap:PaymentsToAcquireShortTermInvestments>
    <us-gaap:PaymentsToAcquireShortTermInvestments contextRef="c-19" decimals="-3" id="f-366" unitRef="usd">0</us-gaap:PaymentsToAcquireShortTermInvestments>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments contextRef="c-1" decimals="-3" id="f-367" unitRef="usd">35500000</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments contextRef="c-18" decimals="-3" id="f-368" unitRef="usd">0</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments>
    <us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments contextRef="c-19" decimals="-3" id="f-369" unitRef="usd">0</us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments>
    <us-gaap:ProceedsFromSaleOfShortTermInvestments contextRef="c-1" decimals="-3" id="f-370" unitRef="usd">1973000</us-gaap:ProceedsFromSaleOfShortTermInvestments>
    <us-gaap:ProceedsFromSaleOfShortTermInvestments contextRef="c-18" decimals="-3" id="f-371" unitRef="usd">0</us-gaap:ProceedsFromSaleOfShortTermInvestments>
    <us-gaap:ProceedsFromSaleOfShortTermInvestments contextRef="c-19" decimals="-3" id="f-372" unitRef="usd">0</us-gaap:ProceedsFromSaleOfShortTermInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-1" decimals="-3" id="f-373" unitRef="usd">0</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-18" decimals="-3" id="f-374" unitRef="usd">1191000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-19" decimals="-3" id="f-375" unitRef="usd">5300000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-1" decimals="-3" id="f-376" unitRef="usd">-56980000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-18" decimals="-3" id="f-377" unitRef="usd">-4858000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-19" decimals="-3" id="f-378" unitRef="usd">-13578000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-1" decimals="-3" id="f-379" unitRef="usd">1384000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-18" decimals="-3" id="f-380" unitRef="usd">422000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-19" decimals="-3" id="f-381" unitRef="usd">955000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockPlans contextRef="c-1" decimals="-3" id="f-382" unitRef="usd">646000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans contextRef="c-18" decimals="-3" id="f-383" unitRef="usd">0</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans contextRef="c-19" decimals="-3" id="f-384" unitRef="usd">0</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="c-1" decimals="-3" id="f-385" unitRef="usd">31319000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="c-18" decimals="-3" id="f-386" unitRef="usd">8652000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="c-19" decimals="-3" id="f-387" unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <cdxs:CostsIncurredInConnectionWithEquitySalesAgreements contextRef="c-1" decimals="-3" id="f-388" unitRef="usd">1706000</cdxs:CostsIncurredInConnectionWithEquitySalesAgreements>
    <cdxs:CostsIncurredInConnectionWithEquitySalesAgreements contextRef="c-18" decimals="-3" id="f-389" unitRef="usd">503000</cdxs:CostsIncurredInConnectionWithEquitySalesAgreements>
    <cdxs:CostsIncurredInConnectionWithEquitySalesAgreements contextRef="c-19" decimals="-3" id="f-390" unitRef="usd">42000</cdxs:CostsIncurredInConnectionWithEquitySalesAgreements>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="c-1" decimals="-3" id="f-391" unitRef="usd">29521000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="c-18" decimals="-3" id="f-392" unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="c-19" decimals="-3" id="f-393" unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:PaymentsOfDebtIssuanceCosts contextRef="c-1" decimals="-3" id="f-394" unitRef="usd">642000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts contextRef="c-18" decimals="-3" id="f-395" unitRef="usd">0</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts contextRef="c-19" decimals="-3" id="f-396" unitRef="usd">0</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-1" decimals="-3" id="f-397" unitRef="usd">0</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-18" decimals="-3" id="f-398" unitRef="usd">404000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-19" decimals="-3" id="f-399" unitRef="usd">1488000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-1" decimals="-3" id="f-400" unitRef="usd">60522000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-18" decimals="-3" id="f-401" unitRef="usd">8167000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-19" decimals="-3" id="f-402" unitRef="usd">-575000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-1" decimals="-3" id="f-403" unitRef="usd">-45868000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-18" decimals="-3" id="f-404" unitRef="usd">-49329000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-19" decimals="-3" id="f-405" unitRef="usd">-2869000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-406" unitRef="usd">66697000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-35" decimals="-3" id="f-407" unitRef="usd">116026000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-27" decimals="-3" id="f-408" unitRef="usd">118895000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-4" decimals="-3" id="f-409" unitRef="usd">20829000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-410" unitRef="usd">66697000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-35" decimals="-3" id="f-411" unitRef="usd">116026000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet contextRef="c-1" decimals="-3" id="f-412" unitRef="usd">2566000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet contextRef="c-18" decimals="-3" id="f-413" unitRef="usd">44000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet contextRef="c-19" decimals="-3" id="f-414" unitRef="usd">34000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-1" decimals="-3" id="f-415" unitRef="usd">17000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-18" decimals="-3" id="f-416" unitRef="usd">194000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-19" decimals="-3" id="f-417" unitRef="usd">100000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c-1" decimals="-3" id="f-418" unitRef="usd">566000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c-18" decimals="-3" id="f-419" unitRef="usd">1068000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="c-19" decimals="-3" id="f-420" unitRef="usd">897000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-4" decimals="-3" id="f-421" unitRef="usd">19264000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-5" decimals="-3" id="f-422" unitRef="usd">65116000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-35" decimals="-3" id="f-423" unitRef="usd">113984000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCashAndCashEquivalents contextRef="c-4" decimals="-3" id="f-424" unitRef="usd">1565000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:RestrictedCashAndCashEquivalents contextRef="c-5" decimals="-3" id="f-425" unitRef="usd">1581000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:RestrictedCashAndCashEquivalents contextRef="c-35" decimals="-3" id="f-426" unitRef="usd">2042000</us-gaap:RestrictedCashAndCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-4" decimals="-3" id="f-427" unitRef="usd">20829000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-428" unitRef="usd">66697000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-35" decimals="-3" id="f-429" unitRef="usd">116026000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:ShortTermInvestments contextRef="c-4" decimals="-5" id="f-430" unitRef="usd">54200000</us-gaap:ShortTermInvestments>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-4" decimals="-5" id="f-431" unitRef="usd">73500000</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:NatureOfOperations contextRef="c-1" id="f-432">Description of Business &lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In these notes to the consolidated financial statements, the &#x201c;Company,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &#x201c;we,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &#x201c;us,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and &#x201c;our&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; refers to Codexis, Inc. and its subsidiaries on a consolidated basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We discover, develop, enhance, and commercialize novel, high performance enzymes and other classes of proteins leveraging our proprietary CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;directed evolution technology platform. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the third and fourth quarters of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our Chief Executive Officer (&#x201c;CEO&#x201d;), our chief operating decision maker, assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. Effective October 1, 2023, the Company's operations are managed and reported to the CEO on a consolidated basis. The CEO assesses performance and allocates resources based on the consolidated results of operations. We believe that these changes better align internal resources to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment since the fourth quarter of 2023. Comparative prior period disclosures that reflected the previous two segments' information have been revised to conform to this change in our reportable segment.&lt;/span&gt;&lt;/div&gt;</us-gaap:NatureOfOperations>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-18"
      decimals="INF"
      id="f-433"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-1"
      decimals="INF"
      id="f-434"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-18"
      decimals="INF"
      id="f-435"
      unitRef="segment">2</us-gaap:NumberOfReportableSegments>
    <us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock contextRef="c-1" id="f-436">Basis of Presentation and Summary of Significant Accounting Policies&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation and Principles of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;GAAP&#x201d;) and the applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our revenues are derived primarily from product revenue and collaborative research and development agreements. Some of our contracts with customers contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#x201c;SSP&#x201d;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following is a description of principal activities from which we generate revenue:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer which generally aligns with shipping terms, or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#x2019;s use. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Research and Development Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our CodeEvolver technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Practical Expedients, Elections, and Exemptions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to treat shipping and handling activities as fulfillment costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to record revenue net of sales and other similar taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Assets &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $1.0&#160;million, and $3.0&#160;million for the years ended December&#160;31, 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Research and Development Services&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations. Advertising costs were nil, $0.3 million, and $0.3 million for each of the years ended December 31, 2024, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ESPP&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted Stock Units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSUs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;), Restricted Stock Awards (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSAs&#x201d;) and performance-contingent restricted stock units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PSUs&#x201d;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PBOs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Cash&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are currently in the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations. This balance is recorded as current restricted cash on the consolidated balance sheets of &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.5 million &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;as of December&#160;31, 2024 and 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million as of&#160;December&#160;31, 2024 and 2023. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets. For additional information, see Note 13, &#x201c;Commitments and Contingencies.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Short-term Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We classify all marketable debt securities that have effective maturities of three months or less from the date of purchase as cash equivalents and those with effective maturities of greater than three months as short-term investment securities in the consolidated balance sheets. We determine the appropriate classification of our short-term investments at the time of purchase and reevaluate such designation at each balance sheet date. We have classified and accounted for our short-term investments as available-for-sale. After consideration of our risk versus reward objectives, as well as our liquidity requirements, we may sell these debt securities prior to their effective maturities.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We carry these short-term investments at fair value, and report the unrealized gains and losses, net of taxes, as a component of stockholders&#x2019; equity, except for the changes in allowance for expected credit losses, which are included in &#x201c;Interest and other expense, net&#x201d; in the consolidated statements of operations. We determine any realized gains or losses on the sale of short-term investments on a specific identification method, and we record such gains and losses as a component of interest income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Short-term investments are reviewed periodically for allowances for credit losses and impairment. When evaluating the investments, the Company reviews factors such as the extent to which the fair value of the security is less than the amortized cost basis, adverse conditions specifically related to the security, the financial condition of the issuer, the Company&#x2019;s intent to sell, and whether it would be more likely than not that the Company would be required to sell the investments before the recovery of the amortized cost basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#x2019;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2024, we h&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ad four customers that accounted for 56% of our ac&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;counts receivable balance. As of December&#160;31, 2023, four customers accounted for 58% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Financial Assets and Allowances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;W&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#x201c;current expected credit loss model&#x201d; or &#x201c;CECL&#x201d;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#x201c;ACL&#x201d;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Unbilled Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Supply Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;-&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.979%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.981%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Asset classification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Estimated useful life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Office equipment and furniture&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Lesser of useful life or lease term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the years ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2024 and &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ee Note 8, &#x201c;Balance Sheet Details&#x201d; and Note 13, &#x201c;Commitments and Contingencies.&#x201d; No impairment charges for long-lived assets were recorded during the year ended December 31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Investment in Non-Marketable Equity Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in interest and other expense, net.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#x201c;other-than-temporary&#x201d; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Audited and unaudited financial statements;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected technological developments of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected ability of the company to service its debt obligations;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;If a deemed liquidation event were to occur;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current fundraising transactions;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current ability of the company to raise additional financing if needed;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Changes in the economic environment which may have a material impact on the operating results of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Contractual rights, obligations or restrictions associated with the investment; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Other factors deemed relevant by our management to assess valuation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted. For additional information on the impairment charge recorded for the year ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2024 and 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ee Note 6, &#x201c;Investments in Non-Marketable Securities.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment, considering, among other factors, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed. Goodwill had a carrying value of $2.5 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; as of December&#160;31, 2024 and 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We test goodwill for impairment annually, on the last day of the fourth fiscal quarter, and between annual tests if events and circumstances indicate it is more likely than not that the fair value is less than its carrying amount. The annual impairment test is completed using either: a qualitative &#x201c;Step 0&#x201d; assessment based on reviewing relevant events and circumstances; or a quantitative &#x201c;Step 1&#x201d; assessment, which determines the fair value. To the extent the carrying amount is less than its estimated fair value, an impairment charge is recorded. Using a relative fair value allocation methodology for assets and liabilities, we compare the carrying amount of net assets and the goodwill to its fair value. If the fair value exceeds its carrying amount, goodwill is considered not impaired. Any excess carrying amount of goodwill over its fair value is recognized as an impairment. No impairment charges related to goodwill were recognized in 2024. We recorded impairment charges related to goodwill of $0.8&#160;million for the year ended December 31, 2023. For additional information on the impairment charge recorded in 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ee Note 8, &#x201c;Balance Sheet Details.&#x201d; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Lease Accounting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. In the event that it is determined that these deferred tax assets are not more likely than not to be realized, a valuation allowance is recorded against these deferred tax assets. As of December&#160;31, 2024 and 2023, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) 2009-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#x2019;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#x201c;NOL&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently adopted accounting pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2023, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) No. 2023-07,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. The Company adopted ASU No. 2023-07 during the year ended December&#160;31, 2024. For additional information, see Note 15, &#x201c;Segment, Geographical and Other Revenue Information.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Aside from those recently issued accounting pronouncements adopted and described above and not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2024 that are of significance or potential significance to us.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently issued accounting pronouncements not yet adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2024, the FASB issued ASU No. 2024-03, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Statement-Reporting Comprehensive Income-Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendment in the ASU will require additional disclosures and disaggregation of certain costs and expenses presented on the face of the income statement. This guidance is effective for the Company for fiscal years beginning after December 15, 2026. Early adoption is permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2024, the FASB issued ASU No. 2024-02, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements - Amendments to Remove References to the Concepts Statements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU amends the FASB Accounting Standard Codification (the &#x201c;ASC&#x201d;) to remove references to various concepts statements and impacts a variety of topics in the ASC. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. If an entity adopts the amendments in an interim period, it must adopt them as of the beginning of the fiscal year that includes that interim period. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2023, FASB issued ASU No. 2023-09,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU require public companies, on an annual basis, to provide disclosures of specific categories in the rate reconciliation, as well as disclosure of income taxes paid disaggregated by jurisdiction. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2023, FASB issued ASU No. 2023-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Disclosure Improvements: Codification Amendments in Response to the SEC&#x2019;s Disclosure Update and Simplification Initiative&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the ASC. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#x2019;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock contextRef="c-1" id="f-437">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation and Principles of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;GAAP&#x201d;) and the applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) and include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; consolidated financial statements include the accounts of Codexis, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates contextRef="c-1" id="f-438">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of our consolidated financial statements in conformity with GAAP requires us to make estimates, judgments and assumptions that may affect the reported amounts of assets, liabilities, equity, revenues and expenses and related disclosure of contingent assets and liabilities. We regularly assess these estimates which primarily affect revenue recognition, deferred revenue, inventories, valuation of equity investments, goodwill arising out of business acquisitions, accrued liabilities, stock awards, and the valuation allowances associated with deferred tax assets. Actual results could differ from those estimates and such differences may be material to the consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="c-1" id="f-439">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The USD is the functional currency for our operations outside the United States. Accordingly, non-monetary assets and liabilities originally acquired or assumed in other currencies are recorded in USD at the exchange rates in effect at the date they were acquired or assumed. Monetary assets and liabilities denominated in other currencies are translated into United States dollars at the exchange rates in effect at the balance sheet date. Translation adjustments are recorded in other expense in the consolidated statements of operations. Gains and losses realized from non-USD transactions, including intercompany balances not considered as permanent investments, are included in other expense in the accompanying consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="c-1" id="f-440">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our revenues are derived primarily from product revenue and collaborative research and development agreements. Some of our contracts with customers contain multiple products and services. We account for individual products and services separately if they are distinct-that is, if a product or service is separately identifiable from other items in the contract and if a customer can benefit from it on its own or with other resources that are readily available to the customer. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In determining the appropriate amount of revenue to be recognized as we fulfill our obligations under our product revenue and collaborative research and development agreements, we perform the following steps: (i)&#160;identification of the promised goods or services in the contract; (ii)&#160;determination of whether the promised goods or services are performance obligations, including whether they are distinct in the context of the contract; (iii)&#160;measurement of the transaction price, including the constraint on variable consideration; (iv)&#160;allocation of the transaction price to the performance obligations based on estimated selling prices; and (v)&#160;recognition of revenue when (or as) we satisfy each performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our collaborative contracts contain multiple revenue streams such as upfront and/or annual license fees, fees for research and development services, contingent milestone payments upon achievement of contractual criteria, and royalty fees based on the licensees' product revenue or usage, among others. We determine the stand-alone selling price (&#x201c;SSP&#x201d;) and allocate consideration to distinct performance obligations. Typically, we base our SSPs on our historical sales. If an SSP is not directly observable, then we estimate the SSP taking into consideration market conditions, forecasted sales, entity-specific factors and available information about the customer. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for a contract with a customer when there is approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance and collectability of consideration is probable. Non-cancellable purchase orders received from customers to deliver a specific quantity of product, when combined with our order confirmation, in exchange for future consideration, create enforceable rights and obligations on both parties and constitute a contract with a customer.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure revenue based on the consideration specified in the contract with each customer, net of any sales incentives and taxes collected on behalf of government authorities. We recognize revenue in a manner that best depicts the transfer of promised goods or services to the customer, when control of the product or service is transferred to a customer. We make significant judgments when determining the appropriate timing of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following is a description of principal activities from which we generate revenue:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Product revenue consist of sales of biocatalysts, pharmaceutical intermediates and Codex biocatalyst panels and kits. A majority of our product revenue is made pursuant to purchase orders or supply agreements and is recognized either at a point in time when the control of the product has been transferred to the customer which generally aligns with shipping terms, or over time as the product is manufactured because we have a right to payment from the customer under a binding, non-cancellable purchase order, and there is no alternate use of the product for us as it is specifically made for the customer&#x2019;s use. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of our agreements provide options to customers which they can exercise at a future date, such as the option to purchase our product during the contract duration at discounted prices and an option to extend their contract, among others. In accounting for customer options, we determine whether an option is a material right and this requires us to exercise significant judgment. If a contract provides the customer an option to acquire additional goods or services at a discount that exceeds the range of discounts that we typically give for that product or service for the same class of customer, or if the option provides the customer certain additional goods or services for free, the option may be considered a material right. If the contract gives the customer the option to acquire additional goods or services at their normal SSPs, we would likely determine that the option is not a material right and, therefore, account for it as a separate performance obligation when the customer exercises the option. We primarily account for options which provide material rights using the alternative approach available pursuant to the applicable accounting guidance, as we concluded we meet the criteria for using the alternative approach. Therefore, the transaction price is calculated as the expected consideration to be received for all the goods and services we expect to provide under the contract. We update the transaction price for expected consideration, subject to constraint, each reporting period if our estimates of future goods to be ordered by customers change. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Research and Development Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform research and development activities as specified in each respective customer agreement. We identify each performance obligation in our research and development agreements at contract inception. We allocate the consideration to each distinct performance obligation based on the SSP of each performance obligation. Performance obligations included in our research and services agreements typically include research and development services for a specified term, periodic reports and small samples of enzyme produced.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of our research and development agreements are based on a contractual rate per dedicated project team working on the project. The underlying product that we develop for customers does not create an asset with an alternative use to us and the customer receives benefits as we perform the work towards completion. Thus, our performance obligations are generally satisfied over time as the service is performed. We utilize an appropriate method of measuring progress towards the completion of our performance obligations to determine the timing of revenue rec&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ognition. For each performance obligation that is satisfied over time, we recognize revenue using a single measure of progress either based on hours incurred or output of services provided.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our contracts frequently provide customers with rights to use or access our products or technology, along with other promises or performance obligations. We must first determine whether the license is distinct from other promises, such as our promise to manufacture a product. If we determine that the customer cannot benefit from the license without our manufacturing capability, the license will be accounted for as combined with the other performance obligations. If we determine that a license is distinct and has significant standalone functionality, we recognize revenues from a functional license at a point in time when the license is transferred to the customer, and the customer can use and benefit from it. We estimate the SSP for license rights by using historical information if licenses have been previously sold to customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At the inception of each arrangement that includes variable consideration such as development milestone payments, we evaluate whether the milestones are considered probable of being reached and estimate the amount to be included in the transaction price using the most likely amount method. If it is probable that a significant revenue reversal would not occur, the associated milestone value is included in the transaction price. Milestone payments that are not within our control or the licensee, such as regulatory approvals, are not considered probable of being achieved until those approvals are received. The transaction price is then allocated to each performance obligation on a relative stand-alone selling price basis, for which we recognize revenue as or when the performance obligations under the contract are satisfied. At the end of each subsequent reporting period, we re-evaluate the probability of achievement of such development milestones and any related constraint, and if necessary, adjust our estimate of the overall transaction price. Any such adjustments are recorded on a cumulative catch-up basis, which would affect license, collaboration and other revenues and earnings in the period of adjustment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our CodeEvolver technology platform transfer collaboration agreements typically include license fees, upfront fees, and variable consideration in the form of milestone payments, and sales or usage-based royalties. We have recognized revenues from our platform technology transfer agreements over time as our customer uses our technology.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For license agreements that include sales or usage-based royalty payments to us, we do not recognize revenue until the underlying sales of the product or usage has occurred. At the end of each reporting period, we estimate the royalty amount. We recognize revenue at the later of (i) when the related sale of the product occurs, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied, or partially satisfied.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Practical Expedients, Elections, and Exemptions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We apply certain practical expedients available which permit us not to adjust the amount of consideration for the effects of a significant financing component if, at contract inception, the expected period between the transfer of promised goods or services and customer payment is one year or less.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform monthly services under our research and development agreements, and we use a practical expedient permitting us to recognize revenue at the same time that we have the right to invoice our customer for monthly services completed to date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to treat shipping and handling activities as fulfillment costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We have elected to record revenue net of sales and other similar taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Assets &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract assets include amounts related to our contractual right to consideration for completed performance obligations not yet invoiced. Contract assets are reclassified to receivables when the rights become unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities are recorded as deferred revenues and include payments received in advance of performance under the contract. Contract liabilities are realized when the development services are provided to the customer or control of the products has been transferred to the customer. A portion of our contract liabilities relate to supply arrangements that contain material rights that are recognized using the alternative method, under which the aggregate amount invoiced to the customer for shipped products, including contractual fees, is higher than the amount of revenue recognized based on the transaction price allocated to the shipped products.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize a non-current asset for the incremental costs of obtaining a contract with a customer if the entity expects to recover such costs and if those costs would not have been incurred if the contract had not been obtained, such as commissions paid to sales personnel. We do not typically incur significant incremental costs because the compensation of our salespeople is not based on contracts closed but on a mixture of company goals, individual goals, and sales goals. If a commission paid is directly related to obtaining a specific contract, our policy is to capitalize and amortize such costs on a systematic basis, consistent with the pattern of transfer of the good or service to which the asset relates, and over a period beyond 12 months. Contract costs are reported in other non-current assets and were not significant in any of the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of product revenue comprises both internal and third party fixed and variable costs including materials and supplies, labor, facilities, and other overhead costs associated with our product sales. Shipping costs are included in our cost of product revenue. Shipping costs were $1.0&#160;million, $1.0&#160;million, and $3.0&#160;million for the years ended December&#160;31, 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fulfillment costs, such as shipping and handling, are recognized at a point in time and are included in cost of product revenue.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Research and Development Services&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of research and development services related to services under research and development agreements approximate the research funding over the term of the respective agreements and is included in research and development expense. Costs of services provided under license and platform technology transfer agreements are included in research and development expenses and are expensed in the periods in which such costs are incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <cdxs:ShippingAndDistributionCost contextRef="c-1" decimals="-5" id="f-441" unitRef="usd">1000000</cdxs:ShippingAndDistributionCost>
    <cdxs:ShippingAndDistributionCost contextRef="c-18" decimals="-5" id="f-442" unitRef="usd">1000000</cdxs:ShippingAndDistributionCost>
    <cdxs:ShippingAndDistributionCost contextRef="c-19" decimals="-5" id="f-443" unitRef="usd">3000000</cdxs:ShippingAndDistributionCost>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="c-1" id="f-444">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development expenses consist of costs incurred for internal projects and partner-funded collaborative research and development activities, as well as license and platform technology transfer agreements, as mentioned above. These costs include our direct and research-related overhead expenses, which include salaries and other personnel-related expenses (including stock-based compensation), occupancy-related costs, supplies, and depreciation of facilities and laboratory equipment, as well as external costs, and are expensed as incurred. Costs to acquire technologies that are utilized in research and development and that have no alternative future use are expensed when incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="c-1" id="f-445">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising&lt;/span&gt;&lt;/div&gt;Advertising costs are expensed as incurred and included in selling, general and administrative expenses in the consolidated statements of operations.</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense contextRef="c-1" decimals="-5" id="f-446" unitRef="usd">0</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-18" decimals="-5" id="f-447" unitRef="usd">300000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-19" decimals="-5" id="f-448" unitRef="usd">300000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="c-1" id="f-449">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the Black-Scholes-Merton option pricing model to estimate the fair value of stock options granted under our equity incentive plans and for our employee stock purchase plan (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ESPP&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;). The Black-Scholes-Merton option pricing model requires the use of assumptions, including the expected term of the award and the expected stock price volatility. The expected term is based on historical exercise behavior for similar awards, giving consideration to the contractual terms, vesting schedules and expectations of future employee behavior. We use historical volatility to estimate expected stock price volatility. The risk-free rate assumption is based on United States Treasury instruments whose terms are consistent with the expected term of the stock options. The expected dividend assumption is based on our history and expectation of dividend payouts.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted Stock Units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSUs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;), Restricted Stock Awards (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSAs&#x201d;) and performance-contingent restricted stock units (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PSUs&#x201d;) are measured based on the fair market values of the underlying stock on the dates of grant. Performance based options (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PBOs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) are measured using the Black-Scholes-Merton option pricing model. The vesting of PBOs and PSUs awarded is conditioned upon the attainment of one or more performance objectives over a specified period and upon continued employment through the applicable vesting date. At the end of the performance period, shares of stock subject to the PBOs and PSUs vest based upon both the level of achievement of performance objectives within the performance period and continued employment through the applicable vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is calculated based on awards ultimately expected to vest and is reduced for estimated forfeitures at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates. The estimated annual forfeiture rates for stock options, RSUs, PSUs, PBOs, and RSAs are based on historical forfeiture experience.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The estimated fair value of stock options, RSUs, RSAs and shares to be issued under the ESPP are expensed on a straight-line basis over the vesting term of the grant and the estimated fair value of PSUs and PBOs are expensed using an accelerated method over the term of the award once management has determined that it is probable that the performance objective will be achieved. Compensation expense is recorded over the requisite service period based on management's best estimate as to whether it is probable that the shares awarded are expected to vest. Management assesses the probability of the performance milestones being met on a continuous basis.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy contextRef="c-1" id="f-450">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;We consider all highly liquid investments with maturity dates of three months or less at the date of purchase to be cash equivalents. Cash and cash equivalents consist of cash on deposit with banks and money market funds. The majority of cash and cash equivalents is maintained with major financial institutions in the United States. Deposits with these financial institutions may exceed the amount of insurance provided on such deposits.</us-gaap:CashAndCashEquivalentsUnrestrictedCashAndCashEquivalentsPolicy>
    <us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy contextRef="c-1" id="f-451">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Cash&lt;/span&gt;&lt;/div&gt;We are currently in the process of liquidating our Indian subsidiary. The local legal requirements for liquidation required us to maintain our subsidiary's cash balance in an account managed by a legal trustee to satisfy our financial obligations.Pursuant to the terms of our lease agreements, we obtained letters of credit collateralized by cash deposit balances of&#160;$1.1 million as of&#160;December&#160;31, 2024 and 2023. These cash deposits balances are recorded as non-current restricted cash on the consolidated balance sheets.</us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy>
    <us-gaap:RestrictedCashCurrent contextRef="c-4" decimals="-5" id="f-452" unitRef="usd">500000</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashCurrent contextRef="c-5" decimals="-5" id="f-453" unitRef="usd">500000</us-gaap:RestrictedCashCurrent>
    <us-gaap:RestrictedCashNoncurrent contextRef="c-51" decimals="-5" id="f-454" unitRef="usd">1100000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:RestrictedCashNoncurrent contextRef="c-52" decimals="-5" id="f-455" unitRef="usd">1100000</us-gaap:RestrictedCashNoncurrent>
    <us-gaap:InvestmentPolicyTextBlock contextRef="c-1" id="f-456">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Short-term Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We classify all marketable debt securities that have effective maturities of three months or less from the date of purchase as cash equivalents and those with effective maturities of greater than three months as short-term investment securities in the consolidated balance sheets. We determine the appropriate classification of our short-term investments at the time of purchase and reevaluate such designation at each balance sheet date. We have classified and accounted for our short-term investments as available-for-sale. After consideration of our risk versus reward objectives, as well as our liquidity requirements, we may sell these debt securities prior to their effective maturities.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We carry these short-term investments at fair value, and report the unrealized gains and losses, net of taxes, as a component of stockholders&#x2019; equity, except for the changes in allowance for expected credit losses, which are included in &#x201c;Interest and other expense, net&#x201d; in the consolidated statements of operations. We determine any realized gains or losses on the sale of short-term investments on a specific identification method, and we record such gains and losses as a component of interest income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Short-term investments are reviewed periodically for allowances for credit losses and impairment. When evaluating the investments, the Company reviews factors such as the extent to which the fair value of the security is less than the amortized cost basis, adverse conditions specifically related to the security, the financial condition of the issuer, the Company&#x2019;s intent to sell, and whether it would be more likely than not that the Company would be required to sell the investments before the recovery of the amortized cost basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Investment in Non-Marketable Equity Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We measure investments in non-marketable equity securities without a readily determinable fair value using a measurement alternative that measures these securities at the cost method minus impairment, if any, plus or minus changes resulting from observable price changes on a non-recurring basis. Gains and losses on these securities are recognized in interest and other expense, net.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate equity securities for impairment when circumstances indicate that we may not be able to recover the carrying value. We may impair these securities and establish an allowance for a credit loss when we determine that there has been an &#x201c;other-than-temporary&#x201d; decline in the estimated fair value of the equity security compared to its carrying value. We calculate the estimated fair value of these securities using information from the investee, which may include:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Audited and unaudited financial statements;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected technological developments of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Projected ability of the company to service its debt obligations;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;If a deemed liquidation event were to occur;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current fundraising transactions;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Current ability of the company to raise additional financing if needed;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Changes in the economic environment which may have a material impact on the operating results of the company;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Contractual rights, obligations or restrictions associated with the investment; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Other factors deemed relevant by our management to assess valuation.&lt;/span&gt;&lt;/div&gt;The valuation may be reduced if the company's potential has deteriorated significantly. If the factors that led to a reduction in valuation are overcome, the valuation may be readjusted.</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="c-1" id="f-457">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. In determining fair value, we utilize valuation techniques that maximize the use of observable inputs and minimize the use of unobservable inputs to the extent possible and we consider counterparty credit risk in our assessment of fair value. Carrying amounts of financial instruments, including cash equivalents, accounts receivable, accounts payable, and accrued liabilities, approximate their fair values as of the balance sheet dates because of their short maturities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value hierarchy distinguishes between (1) market participant assumptions developed based on market data obtained from independent sources (observable inputs) and (2) an entity&#x2019;s own assumptions about market participant assumptions developed based on the best information available in the circumstances (unobservable inputs). The fair value hierarchy consists of three broad levels, giving the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1) and the lowest priority to unobservable inputs (Level 3). The three levels of the fair value hierarchy are described below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 1: Inputs that are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 2: Inputs that are either directly or indirectly observable for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 3: Unobservable inputs that are supported by little or no market activity and that are significant to the fair value of the assets or liabilities and which reflect management&#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="c-1" id="f-458">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist primarily of cash and cash equivalents, accounts receivable and unbilled receivables, contract assets, non-marketable securities, and restricted cash. Cash that is not required for immediate operating needs is invested principally in money market funds. Cash and cash equivalents are invested through banks and other financial institutions in the United States and India. Such deposits in those countries may be in excess of insured limits. The Company has not experienced material losses on its deposits of cash and cash equivalents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We perform ongoing credit evaluations of our customer's financial condition whenever deemed necessary. We maintain an allowance for doubtful accounts based on the expected collectability of all financial assets, which takes into consideration an analysis of historical bad debts, specific customer creditworthiness and current economic trends. As of December&#160;31, 2024, we h&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ad four customers that accounted for 56% of our ac&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;counts receivable balance. As of December&#160;31, 2023, four customers accounted for 58% of our accounts receivable balance. We believe the accounts receivable balances from our largest customers do not represent a significant credit risk, based on cash flow forecasts, balance sheet analysis, and past collection experience.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-53" decimals="2" id="f-459" unitRef="number">0.56</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-54" decimals="2" id="f-460" unitRef="number">0.58</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:CreditLossFinancialInstrumentPolicyTextBlock contextRef="c-1" id="f-461">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Financial Assets and Allowances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;W&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e currently sell enzymes primarily to pharmaceutical and fine chemicals companies throughout the world by the extension of trade credit terms based on an assessment of each customer's financial condition. Trade credit terms are generally offered without collateral and may include an insignificant discount for prompt payment for specific customers. To manage our credit exposure, we perform ongoing evaluations of our customers' financial conditions. In addition, accounts receivable include amounts owed to us under our collaborative research and development agreements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize accounts receivable at invoiced amounts and we maintain a valuation allowance for credit losses using an impairment model (known as the &#x201c;current expected credit loss model&#x201d; or &#x201c;CECL&#x201d;) based on estimates and forecasts of future conditions requiring recognition of a lifetime of expected credit losses at inception on our financing receivables measured at amortized costs which consisted of accounts receivable, contract assets, and unbilled receivables. We have determined that our financing receivables share similar risk characteristics including: (i) customer origination in the pharmaceutical and fine chemicals industry, (ii) similar historical credit loss pattern of customers (iii) no meaningful trade receivable differences in terms, (iv) similar historical credit loss experience and (v) our belief that the composition of certain assets are comparable to our historical portfolio used to develop loss history. As a result, we measured the allowance for credit loss (&#x201c;ACL&#x201d;) on a collective basis. Our ACL methodology considers how long the asset has been past due, the financial condition of the customers, which includes ongoing quarterly evaluations and assessments of changes in customer credit ratings, and other market data that we believe are relevant to the collectability of the assets. Nearly all financing receivables are due from customers that are highly rated by major rating agencies and have a long history of no credit loss. We derive our ACL by establishing an impairment rate attributable to assets not yet identified as impaired.&lt;/span&gt;&lt;/div&gt;</us-gaap:CreditLossFinancialInstrumentPolicyTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy contextRef="c-1" id="f-462">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Unbilled Receivable&lt;/span&gt;&lt;/div&gt;The timing of revenue recognition may differ from the timing of invoicing to our customers. When we satisfy (or partially satisfy) a performance obligation, prior to being able to invoice the customer, we recognize an unbilled receivable&#160;when the right to consideration is unconditional.</us-gaap:TradeAndOtherAccountsReceivableUnbilledReceivablesPolicy>
    <us-gaap:InventoryPolicyTextBlock contextRef="c-1" id="f-463">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost or net realizable value. Cost is determined using a weighted-average approach, assuming full absorption of direct and indirect manufacturing costs, or based on cost of purchasing from our vendors. If inventory costs exceed expected net realizable value due to obsolescence or lack of demand, valuation adjustments are recorded for the difference between the cost and the expected net realizable value.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
    <cdxs:ConcentrationRiskSupplyRiskPolicyTextBlock contextRef="c-1" id="f-464">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentrations of Supply Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rely on a limited number of suppliers for our products. We believe that other vendors would be able to provide similar products; however, the qualification of such vendors may require substantial start-up time. In order to mitigate any adverse impacts from a disruption of supply, we attempt to maintain an adequate supply of critical single-sourced materials. For certain materials, our vendors maintain a supply for us. We outsource the large&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;-&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;scale manufacturing of our products to contract manufacturers with facilities in Austria and Italy.&lt;/span&gt;&lt;/div&gt;</cdxs:ConcentrationRiskSupplyRiskPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="c-1" id="f-465">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment classified as construction in process includes equipment that has been received but not yet placed in service. Normal repairs and maintenance costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="c-1" id="f-466">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and leasehold improvements are stated at cost less accumulated depreciation and amortization calculated using the straight-line method over their estimated useful lives as follows:&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.979%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:45.820%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:1.981%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Asset classification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Estimated useful life&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Office equipment and furniture&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5 years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Lesser of useful life or lease term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, net consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;35,949&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;37,216&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Computer equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Office furniture and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,469&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Construction in progress&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,636&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;55,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(40,935)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(39,311)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Fully depreciated property and equipment with a cost of $2.6 million and $3.0 million were retired during the years ended December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Construction in progress includes equipment received but not yet placed into service pending installation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,594&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;846&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total depreciation expense&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-55" id="f-467">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-56" id="f-468">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-57" id="f-469">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock contextRef="c-1" id="f-470">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We evaluate the carrying values of long-lived assets, which include property and equipment and right-of-use assets, whenever events, changes in business circumstances or our planned use of long-lived assets indicate that their carrying amounts may not be fully recoverable or that their useful lives are no longer appropriate. If these facts and circumstances exist, we assess for recovery by comparing the carrying values of long-lived assets with their future net undiscounted cash flows expected to be generated by the asset. If such assets are considered to be impaired, the impairment to be recognized is measured by the amount by which the carrying amount of the asset exceeds the fair value of the asset. For additional information on the impairment charge recorded for the years ended&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; December&#160;31, 2024 and &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s&lt;/span&gt;ee Note 8, &#x201c;Balance Sheet Details&#x201d; and Note 13, &#x201c;Commitments and Contingencies.&#x201d;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:ImpairmentOfLongLivedAssetsHeldForUse contextRef="c-19" decimals="-5" id="f-471" unitRef="usd">0</us-gaap:ImpairmentOfLongLivedAssetsHeldForUse>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="c-1" id="f-472">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;Goodwill represents the excess of the consideration transferred over the fair value of net assets of businesses acquired and is assigned to reporting units. We test goodwill for impairment, considering, among other factors, whether there have been sustained declines in our share price. If we conclude it is more likely than not that the fair value is less than its carrying amount, a quantitative fair value test is performed.</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:Goodwill contextRef="c-4" decimals="-5" id="f-473" unitRef="usd">2500000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-5" id="f-474" unitRef="usd">2500000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-58" decimals="-5" id="f-475" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-59" decimals="-5" id="f-476" unitRef="usd">800000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="c-1" id="f-477">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Lease Accounting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine if an arrangement is a lease at inception. Where an arrangement is a lease, we determine if it is an operating lease or a finance lease. At lease commencement, we record a lease liability and ROU asset. Lease liabilities represent the present value of our future lease payments over the expected lease term which includes options to extend or terminate the lease when it is reasonably certain those options will be exercised. The present value of our lease liability is determined using our incremental collateralized borrowing rate at lease inception. ROU assets represent our right to control the use of the leased asset during the lease and are recognized in an amount equal to the lease liability for leases with an initial term greater than 12 months. Over the lease term, we use the effective interest rate method to account for the lease liability as lease payments are made and the ROU asset is amortized to the consolidated statement of operations in a manner that results in straight-line expense recognition. We do not apply lease recognition requirements for short-term leases. Instead, we recognize payments related to these arrangements in the consolidated statement of operations as lease costs on a straight-line basis over the lease term.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="c-1" id="f-478">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We use the liability method of accounting for income taxes, whereby deferred tax asset or liability account balances are calculated at the balance sheet date using current tax laws and rates in effect for the year in which the differences are expected to affect taxable income. Valuation allowances are provided when necessary to reduce deferred tax assets to the amount that will more likely than not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make certain estimates and judgments in determining income tax expense for financial statement purposes. These estimates and judgments occur in the calculation of tax credits, benefits and deductions and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of recognition of revenues and expenses for tax and financial statement purposes. Significant changes to these estimates may result in an increase or decrease to our tax provision in a subsequent period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In assessing the realizability of deferred tax assets, we consider whether it is more likely than not that some portion or all of the deferred tax assets will be realized on a jurisdiction by jurisdiction basis. The ultimate realization of deferred tax assets is dependent upon the generation of taxable income in the future. In the event that it is determined that these deferred tax assets are not more likely than not to be realized, a valuation allowance is recorded against these deferred tax assets. As of December&#160;31, 2024 and 2023, we maintain a full valuation allowance in all jurisdictions against the net deferred tax assets as&#160;we believe that it is more likely than not that the majority of deferred tax assets will not be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We make estimates and judgments about our future taxable income that are based on assumptions that are consistent with our plans and estimates. Should the actual amounts differ from our estimates, the amount of our valuation allowance may be materially impacted. Any adjustment to the deferred tax asset valuation allowance would be recorded in the statements of operations for the periods in which the adjustment is determined to be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We account for uncertainty in income taxes as required by the provisions of Accounting Standards Update (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) 2009-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740) Implementation Guidance on Accounting for Uncertainty in Income Taxes and Disclosure Amendments for Nonpublic Entities&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which clarifies the accounting for uncertainty in income taxes recognized in an enterprise&#x2019;s financial statements. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates that it is more likely than not that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to estimate and measure the tax benefit as the largest amount that is more than 50% likely of being realized upon ultimate settlement. It is inherently difficult and subjective to estimate such amounts, as this requires us to determine the probability of various possible outcomes. We consider many factors when evaluating and estimating our tax positions and tax benefits, which may require periodic adjustments and may not accurately anticipate actual outcomes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Tax Reform Act of 1986 and similar state provisions limit the use of net operating loss (&#x201c;NOL&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) carryforwards in certain situations where equity transactions result in a change of ownership as defined by Internal Revenue Code Section&#160;382.&#160;In the event we should experience such a change of ownership, utilization of our federal and state NOL carryforwards could be limited.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="c-1" id="f-479">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently adopted accounting pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2023, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) No. 2023-07,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to improve reportable segment disclosure requirements primarily through enhanced disclosures about significant segment expenses. The standard is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The standard should be applied retrospectively to all prior periods presented in the financial statements. The Company adopted ASU No. 2023-07 during the year ended December&#160;31, 2024. For additional information, see Note 15, &#x201c;Segment, Geographical and Other Revenue Information.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Aside from those recently issued accounting pronouncements adopted and described above and not yet adopted and described below, there have not been any recent accounting pronouncements or changes in accounting pronouncements during the year ended December&#160;31, 2024 that are of significance or potential significance to us.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recently issued accounting pronouncements not yet adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2024, the FASB issued ASU No. 2024-03, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Income Statement-Reporting Comprehensive Income-Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendment in the ASU will require additional disclosures and disaggregation of certain costs and expenses presented on the face of the income statement. This guidance is effective for the Company for fiscal years beginning after December 15, 2026. Early adoption is permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2024, the FASB issued ASU No. 2024-02, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements - Amendments to Remove References to the Concepts Statements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU amends the FASB Accounting Standard Codification (the &#x201c;ASC&#x201d;) to remove references to various concepts statements and impacts a variety of topics in the ASC. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. If an entity adopts the amendments in an interim period, it must adopt them as of the beginning of the fiscal year that includes that interim period. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2023, FASB issued ASU No. 2023-09,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU require public companies, on an annual basis, to provide disclosures of specific categories in the rate reconciliation, as well as disclosure of income taxes paid disaggregated by jurisdiction. This ASU is effective for public companies with annual periods beginning after December 15, 2024, with early adoption permitted. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2023, FASB issued ASU No. 2023-06,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt; Disclosure Improvements: Codification Amendments in Response to the SEC&#x2019;s Disclosure Update and Simplification Initiative&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The amendments in the ASU are intended to amend certain disclosure and presentation requirements for a variety of topics within the ASC. These amendments align the requirements in the ASC to the removal of certain disclosure requirements set out in Regulation S-X and Regulation S-K, as announced by the SEC. The effective date for each amended topic in the ASC is either the date on which the SEC&#x2019;s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. Early adoption is prohibited. We are currently evaluating the effects of the standard on our consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="c-1" id="f-480">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Disaggregation of Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table provides information about disaggregated revenue from contracts with customers into the nature of the products and services, and geographic regions, and includes a reconciliation of the disaggregated revenue. The geographic regions that are tracked are the Americas (United States, Canada, and Latin America), EMEA (Europe, Middle East, and Africa), and APAC (Australia, New Zealand, Southeast Asia, and China). &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Disaggregated information is as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Major products and service:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;36,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;116,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,559&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Primary geographical markets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,708&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For additional information regarding revenue disaggregated by geography, see Note 15, &#x201c;Segment, Geographical and Other Revenue Information.&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contract Balances&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents balances of contract assets, unbilled receivables, and contract liabilities (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unbilled receivables&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract liabilities: deferred revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize accounts receivable when we have an unconditional right to recognize revenue and have issued an invoice to the customer. Our payment terms are generally between 30 and 90 days. We recognize unbilled receivables when we have an unconditional right to recognize revenue and have not issued an invoice to our customer. Unbilled receivables are transferred to accounts receivable on issuance of an invoice. Unbilled receivables are classified separately on the consolidated balance sheets as an asset. We maintain an allowance for credit losses on accounts receivables and unbilled receivables. As of December&#160;31, 2024, we have $2.8 million of short-term unbilled receivables presented as unbilled receivables within current assets and $0.5 million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. As of December&#160;31, 2023, we had $9.1 million of short-term unbilled receivables presented as unbilled receivables within current asset and $0.8 million of long-term unbilled receivables that is included within the other non-current assets line item in the consolidated balance sheets. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract assets represent our right to recognize revenue for custom products with no alternate use and under binding non-cancellable contracts and are largely related to our procurement of product. We recognize contract assets when we have a conditional right to recognize revenue. The transfer of control of certain products occurs in advance of the invoicing process, which generates contract assets. In addition, we recognize a contract asset related to milestones when we assess it is probable of being achieved and there will be no significant reversal of cumulative revenues. Contract assets are classified separately on the consolidated balance sheets as an asset and transferred to accounts receivables when our rights to payment become unconditional. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Contract liabilities, or deferred revenue, represent our obligation to transfer a product or service to the customer, and for which we have received consideration from the customer. We recognize a contract liability when we receive advance customer payments under development agreements for research and development services, upfront license payments, and from upfront customer payments received under product supply agreements. Contract liabilities are classified as a liability on the consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the years ended December&#160;31, 2024, 2023 and 2022, we had no asset impairment charges related to contract assets. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized the following revenues (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Revenue recognized in the period for:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amounts included in contract liabilities at the beginning of the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied from new activities in the period - contract revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied or partially unsatisfied at the end of the reporting periods. The estimated revenue does not include contracts with original durations of one year or less, amounts of variable consideration attributable to royalties, or contract renewals that are unexercised as of December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:32.964%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.624%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2028 and Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;100&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="c-1" id="f-481">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Disaggregated information is as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Major products and service:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;36,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;116,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,559&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Primary geographical markets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,708&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 1.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-9" decimals="-3" id="f-482" unitRef="usd">36786000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-10" decimals="-3" id="f-483" unitRef="usd">42906000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-11" decimals="-3" id="f-484" unitRef="usd">116676000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-15" decimals="-3" id="f-485" unitRef="usd">22559000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-16" decimals="-3" id="f-486" unitRef="usd">27237000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-17" decimals="-3" id="f-487" unitRef="usd">21914000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-488" unitRef="usd">59345000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-18" decimals="-3" id="f-489" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-19" decimals="-3" id="f-490" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-60" decimals="-3" id="f-491" unitRef="usd">21278000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-61" decimals="-3" id="f-492" unitRef="usd">13733000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-62" decimals="-3" id="f-493" unitRef="usd">17000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-63" decimals="-3" id="f-494" unitRef="usd">10359000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-64" decimals="-3" id="f-495" unitRef="usd">22907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-65" decimals="-3" id="f-496" unitRef="usd">56540000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-66" decimals="-3" id="f-497" unitRef="usd">27708000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-67" decimals="-3" id="f-498" unitRef="usd">33503000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-68" decimals="-3" id="f-499" unitRef="usd">65050000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-500" unitRef="usd">59345000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-18" decimals="-3" id="f-501" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-19" decimals="-3" id="f-502" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="c-1" id="f-503">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents balances of contract assets, unbilled receivables, and contract liabilities (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unbilled receivables&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,904&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Contract liabilities: deferred revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized the following revenues (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Revenue recognized in the period for:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amounts included in contract liabilities at the beginning of the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the period:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Changes in the estimated transaction price allocated to performance obligations satisfied in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Performance obligations satisfied from new activities in the period - contract revenue&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-4" decimals="-3" id="f-504" unitRef="usd">4375000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:ContractWithCustomerAssetGrossCurrent contextRef="c-5" decimals="-3" id="f-505" unitRef="usd">815000</us-gaap:ContractWithCustomerAssetGrossCurrent>
    <us-gaap:UnbilledContractsReceivable contextRef="c-4" decimals="-3" id="f-506" unitRef="usd">3208000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:UnbilledContractsReceivable contextRef="c-5" decimals="-3" id="f-507" unitRef="usd">9904000</us-gaap:UnbilledContractsReceivable>
    <us-gaap:ContractWithCustomerLiability contextRef="c-4" decimals="-3" id="f-508" unitRef="usd">450000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-5" decimals="-3" id="f-509" unitRef="usd">10761000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueFromContractWithCustomerPaymentTerms contextRef="c-69" id="f-510">P30D</cdxs:RevenueFromContractWithCustomerPaymentTerms>
    <cdxs:RevenueFromContractWithCustomerPaymentTerms contextRef="c-70" id="f-511">P90D</cdxs:RevenueFromContractWithCustomerPaymentTerms>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-71" decimals="-5" id="f-512" unitRef="usd">2800000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-72" decimals="-5" id="f-513" unitRef="usd">500000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-73" decimals="-5" id="f-514" unitRef="usd">9100000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate contextRef="c-74" decimals="-5" id="f-515" unitRef="usd">800000</us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDate>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense contextRef="c-19" decimals="INF" id="f-516" unitRef="usd">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense contextRef="c-18" decimals="INF" id="f-517" unitRef="usd">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerAssetCreditLossExpense contextRef="c-1" decimals="INF" id="f-518" unitRef="usd">0</us-gaap:ContractWithCustomerAssetCreditLossExpense>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-1" decimals="-3" id="f-519" unitRef="usd">10121000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-18" decimals="-3" id="f-520" unitRef="usd">17937000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice contextRef="c-1" decimals="-3" id="f-521" unitRef="usd">314000</us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice>
    <us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice contextRef="c-18" decimals="-3" id="f-522" unitRef="usd">4165000</us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice>
    <cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition contextRef="c-1" decimals="-3" id="f-523" unitRef="usd">48910000</cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition>
    <cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition contextRef="c-18" decimals="-3" id="f-524" unitRef="usd">48041000</cdxs:ContractwithCustomerLiabilityNewActivitiesPerformanceObligationSatisfiedRevenueRecognition>
    <us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized contextRef="c-1" decimals="-3" id="f-525" unitRef="usd">59345000</us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized contextRef="c-18" decimals="-3" id="f-526" unitRef="usd">70143000</us-gaap:ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock contextRef="c-1" id="f-527">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The balances in the table below are partially based on judgments involved in estimating future orders from customers subject to the exercise of material rights pursuant to respective contracts (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:32.964%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.624%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2028 and Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;350&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;100&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;450&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-75" decimals="-3" id="f-528" unitRef="usd">350000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-76" decimals="-3" id="f-529" unitRef="usd">100000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-77" decimals="-3" id="f-530" unitRef="usd">0</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-78" decimals="-3" id="f-531" unitRef="usd">0</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation contextRef="c-79" decimals="-3" id="f-532" unitRef="usd">450000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:EarningsPerShareTextBlock contextRef="c-1" id="f-537">Net Loss per Share&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net loss per share is computed by dividing the net loss by the weighted-average number of shares of common stock outstanding, less restricted stock awards (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201c;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSAs&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x201d;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;) subject to forfeiture. Diluted net loss per share is computed by dividing net loss by the weighted-average number of shares of common stock shares outstanding, less RSAs subject to forfeiture, plus all additional common shares that would have been outstanding, assuming dilutive potential common stock shares had been issued for other dilutive securities. For all periods presented, diluted and basic net loss per share are identical since potential common stock shares are excluded from the calculation, as their effect was anti-dilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Anti-Dilutive Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In periods of net loss, the weighted average number of shares outstanding, prior to the application of the treasury stock method, excludes potentially dilutive securities from the computation of diluted net loss per common share because including such shares would have an anti-dilutive effect. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Shares issuable under the Equity Incentive Plans and ESPP&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,613&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warrants&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total potentially dilutive securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;Included 665,160 and 568,224 of anti-dilutive potential common shares from ESPP for the years ended December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt; Pertains to the warrants issued in connection with the Innovatus Loan. For additional information, see Note 14, &#x201c;Debt.&#x201d;&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock contextRef="c-1" id="f-538">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following shares were not considered in the computation of diluted net loss per share because their effect was anti-dilutive (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Shares issuable under the Equity Incentive Plans and ESPP&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,613&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Warrants&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total potentially dilutive securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;Included 665,160 and 568,224 of anti-dilutive potential common shares from ESPP for the years ended December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt; Pertains to the warrants issued in connection with the Innovatus Loan. For additional information, see Note 14, &#x201c;Debt.&#x201d;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-80" decimals="-3" id="f-539" unitRef="shares">13613000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-81" decimals="-3" id="f-540" unitRef="shares">9028000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-82" decimals="-3" id="f-541" unitRef="shares">7442000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-83" decimals="-3" id="f-542" unitRef="shares">424000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-84" decimals="-3" id="f-543" unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-85" decimals="-3" id="f-544" unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-1" decimals="-3" id="f-545" unitRef="shares">14037000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-18" decimals="-3" id="f-546" unitRef="shares">9028000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-19" decimals="-3" id="f-547" unitRef="shares">7442000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-86" decimals="0" id="f-548" unitRef="shares">665160</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="c-87" decimals="0" id="f-549" unitRef="shares">568224</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:CollaborativeArrangementDisclosureTextBlock contextRef="c-1" id="f-550">Collaborative Arrangements&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Merck Sitagliptin Catalyst Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In February 2012, we entered into a five-year Sitagliptin Catalyst Supply Agreement (&#x201c;Sitagliptin Supply Agreement&#x201d;) with Merck whereby Merck may obtain commercial scale enzyme for use in the manufacture of Januvia, its product based on the active ingredient sitagliptin. In December 2015, Merck exercised its options under the terms of the Sitagliptin Supply Agreement to extend the agreement for an additional five years through February 2022. In September 2021, the Sitagliptin Supply Agreement was amended to extend the agreement through December 2026. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective as of January 2016, we and Merck amended the Sitagliptin Supply Agreement to prospectively provide for variable pricing based on the cumulative volume of sitagliptin enzyme purchased by Merck. We have previously determined that the variable pricing, which provides a discount based on the cumulative volume of sitagliptin enzyme purchased by Merck, provides Merck material rights and we recognized product revenues using the alternative method wherein we estimated the total expected consideration and allocated it proportionately with the expected sales. Pursuant to the latest amendment of the Sitagliptin Supply Agreement, we have determined that the latest price per volume of sitagliptin enzyme to be purchased by Merck no longer provides Merck material rights, and as such we are recognizing product revenue based on contractually stated prices effective as of February 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized $7.1 million, $4.4 million and $5.9 million in product revenue under this agreement in the years ended December 31, 2024, 2023 and 2022, respectively. This represented 12%, 6%, and 4% of our total revenues in the years ended December 31, 2024, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2024, we recorded revenue of $2.5 million from sitagliptin enzyme sales that were recognized over time based on the progress of the manufacturing process. These products will be &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;shipped within the three-month period following the end of 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Enzyme Supply Agreement and Commercial Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2016, we entered into an enzyme supply agreement with a customer, receiving an upfront payment recorded as deferred revenue which was recognized as the customer purchased our enzyme. In April 2019, we entered into a multi-year commercial agreement with the same customer for the exclusive use of our enzymes in some of their products, with royalties to be earned. Both the enzyme supply agreement and commercial agreement were terminated in 2023. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Due to the early termination of the enzyme supply agreement in 2023, we recognized &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$3.2 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of product revenue from the release of prior periods' product revenue deferrals and also recognized an additional &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.3 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of product revenue as settlement fee.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Strategic Collaboration Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2017, we entered into the Nestl&#xe9; Strategic Collaboration Agreement (the &#x201c;Nestl&#xe9; SCA&#x201d;) with Nestl&#xe9;, pursuant to which we and Nestl&#xe9; collaborated to leverage the CodeEvolver technology platform to develop novel enzymes for Nestl&#xe9;&#x2019;s established Consumer Care and Medical Nutrition business areas.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2020, we entered into a development agreement with Nestl&#xe9; pursuant to which we and Nestl&#xe9; collaborated to advance a lead candidate discovered through our Nestl&#xe9; SCA, CDX-7108, targeting exocrine pancreatic insufficiency, into preclinical and early clinical studies. We, together with Nestl&#xe9; Health Science, initiated a Phase 1 clinical trial of CDX-7108 in the fourth quarter of 2021, and &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;on February 23, 2023, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;we and Nestl&#xe9; announced interim results. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, we announced plans to discontinue our development support of CDX-7108. Both the &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Nestl&#xe9; SCA and development agreement were terminated in January 2024 under the terms of the CDX-7108 Acquisition Agreement with Nestl&#xe9;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the Nestl&#xe9; SCA and the development agreement, we recognized &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nil&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $4.1&#160;million and $7.1&#160;million in research and development revenue in the years ended December&#160;31, 2024, 2023 and 2022, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Acquisition Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, we entered into an acquisition agreement (the &#x201c;Acquisition Agreement&#x201d;) with Nestl&#xe9;, pursuant to which we agreed to assign our interests in CDX-7108 (including associated agreements and intellectual property rights) to Nestl&#xe9;. Under the terms of the Acquisition Agreement, Nestl&#xe9; will be solely responsible for the continued development and commercialization of CDX-7108, including all associated costs, and Codexis will receive upfront payment, future potential milestone payments and net-sales based royalties. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognized &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$5.0&#160;million &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;in research and development revenue &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;f&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;or the year ended &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December 31, 2023 related to the Acquisition Agreement, with the &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$5.0&#160;million upfront fee received in January 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Platform Technology Transfer and License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In May 2019, we entered into the Novartis CodeEvolver Agreement with Novartis. The Novartis CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agreement allows Novartis to use our proprietary CodeEvolver technology platform in the field of human healthcare. In July 2021, we announced the completion of the technology transfer period during which we transferred our proprietary CodeEvolver technology platform to Novartis (the &#x201c;Technology Transfer Period&#x201d;). As a part of this technology transfer, we provided to Novartis our proprietary enzymes, proprietary protein engineering protocols and methods, and proprietary software algorithms. In addition, our teams and Novartis scientists participated in technology training sessions and collaborative research projects at our laboratories in Redwood City, California and at a designated Novartis laboratory in Basel, Switzerland. Novartis has now installed the CodeEvolver technology platform at its designated laboratory.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the agreement, we received an upfront payment of $5.0&#160;million shortly after the effective date of the Novartis CodeEvolver Agreement. We completed the second technology milestone transfer under the agreement in 2020 and received a milestone payment of $4.0&#160;million. We have also received an aggregate of $5.0 million for the completion of the third technology milestone in 2021. In consideration for the continued disclosure and license of improvements to the technology and materials during a multi-year period that began on the conclusion of the Technology Transfer Period (the &#x201c;Improvements Term&#x201d;), Novartis will pay Codexis annual payments over four years which amount to an additional $8.0&#160;million in aggregate. We received an aggregate of $6.0&#160;million for the first three annual payments in 2022 to 2024. The Company also has the potential to receive quantity-dependent, usage payments for each API that is manufactured by Novartis using one or more enzymes that have been developed or are in development using the CodeEvolver&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;technology platform during the period beginning on the conclusion of the Technology Transfer Period and ending on the expiration date of the last to expire licensed patent. Revenue for the combined initial license and technology transfer performance obligation was recognized overtime based on hours incurred. Revenue allocated to improvements made during the Improvements Term is being recognized during the Improvements Term. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We rec&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ognized &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.0 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $1.1 million and $1.0 million in research and development revenue in the years ended December&#160;31, 2024, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;In December 2019, we entered a license agreement with Roche to provide Roche with our evolved T4 DNA ligase high-performance molecular diagnostic enzyme. The royalty bearing license grants Roche worldwide rights to include the evolved T4 DNA ligase in its nucleic acid sequencing products and workflows. Under the license agreement, we received an initial collaboration fee payment of $0.8 million within 45 days of the effective date of the agreement, and we received an additional $0.9 million milestone payment after the completion of technology transfer in October 202&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;0. In February 2024, we entered into a new license agreement with Roche granting them rights to our newly engineered DNA ligase, superseding our prior 2019 agreement. Under the terms of the deal, we received upfront and technical milestones payments. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;We recognized research and development fees &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;of $6.0&#160;million in the year ended December 31, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;2024 related to the license agreement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Strategic Collaboration and License Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2020, we entered into a Strategic Collaboration and License Agreement (the &#x201c;Takeda Agreement&#x201d;) with Shire Human Genetic Therapies, Inc., a wholly-owned subsidiary of Takeda Pharmaceutical Co. Ltd. (&#x201c;Takeda&#x201d;), pursuant to which we have collaborated with Takeda to research and develop protein sequences for use in gene therapy products for certain diseases in accordance with each applicable program plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On execution of the Takeda Agreement, we received an upfront non-refundable cash payment of $8.5&#160;million and we initiated activities under three program plans for Fabry Disease, Pompe Disease, and an undisclosed blood factor deficiency, respectively (the &#x201c;Initial Programs&#x201d;). In May 2021, Takeda elected to exercise its option to initiate an additional program for a certain undisclosed rare genetic disorder; as a result we received the option exercise fee during the third quarter of 2021. We completed the research and development services relating to the fourth program with Takeda during the second quarter of 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the Takeda Agreement, we were eligible to receive other payments that included (&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;i) clinical development and commercialization-based milestones, per target gene, of up to $104.0 million and (ii) tiered royalty payments based on net sales of applicable products at percentages ranging from the mid-single digits to low single-digits. Takeda announced in April 2023 the discontinuation of these development programs, and in 2024 we divested our rights in some of the underlying assets to Crosswalk Therapeutics.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue relating to the functional licenses provided to Takeda was recognized at a point in time when the control of the license transferred to the customer. We recognized research and development revenue related to the Takeda Agreement of $0.8 million, $2.0 million and $4.9 million in the years ended December 31, 2024, 2023, and 2022, respectively. As of December&#160;31, 2024 and 2023, we had deferred revenue balances of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nil&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Master Collaboration and Research Agreement, Stock Purchase Agreement and Enzyme Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2020, we entered into a Stock Purchase Agreement with MAI in which we purchased 1,587,050 shares of MAI's Series A preferred stock for $1.0 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Concurrently with our initial equity investment, we entered into the MAI Agreement, pursuant to which we performed services utilizing our CodeEvolver technology platform to improve DNA polymerase enzymes in exchange for compensation in the form of additional shares of MAI's Series A and B preferred stock&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; which are valued based on the observed transaction price of similar securities of MAI issued to third parties. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the MAI Agreement, we will have the right to use and sell the engineered enzymes to third parties for any purpose other than for the synthesis of native DNA. Under the MAI Agreement, we would make a $0.5&#160;million payment to MAI upon our achievement of a milestone of $5.0&#160;million in aggregate commercial sales to third parties of the engineered enzymes or any product incorporating or derived from the engineered enzymes for any purpose other than the synthesis of native DNA. As contemplated in the MAI Agreement, we executed the Commercial License and Enzyme Supply Agreement with MAI (&#x201c;MAI Supply Agreement&#x201d;) in July 2022 following the completion of certain timelines specified in the SOW.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;W&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e completed the R&amp;amp;D service with MAI pursuant to the MAI Agreement during the first quarter of 2022. In December 2021, we received the primary milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of MAI Series B preferred stock. Upon execution of the MAI Supply Agreement in July 2022, we received the commercialization and enzyme supply agreement milestone payment pursuant to the MAI Agreement of $1.0 million in the form of an additional 1,587,049 shares of MAI Series B preferred stock. Pursuant to the MAI Agreement, we recognized nil , nil, and $1.2 million in research and development revenue from transactions with MAI in the years ended December&#160;31, 2024, 2023, and 2022, respectively. Payment for the services rendered was received in the form of additional MAI Series A and Series B preferred stock. We received an aggregate of nil, nil, and 1,587,049 shares of MAI's Series A and B preferred stock in the years ended December&#160;31, 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2022, we received a purchase order from MAI for the delivery of certain enzyme products to MAI in 2022. In July 2022, we and MAI executed the MAI Supply Agreement that will enable MAI to utilize an evolved terminal deoxynucleotidyl transferase enzyme in MAI&#x2019;s Fully Enzymatic Synthesis technology. Pursuant to the MAI Supply Agreement, we recognized $0.1 million of minimum royalty as part of the research and development revenue in the year ended December&#160;31, 2024. In January 2025, MAI assigned the MAI Supply Agreement to a third party in connection with the sale of its related assets to such third party. We recognized &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.2 million, $0.2&#160;million, and &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.5 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; in product revenue in the years ended December&#160;31, 2024, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023, and 2022, respectively&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;MAI was considered a related party until August 2022, when the related party relationship ended following the retirement of our former President and CEO, who also served on MAI&#x2019;s board of directors.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Pfizer Enzyme Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During 2021 and 2022, we received purchase orders from Pfizer for large quantities of our proprietary enzyme product, CDX-616, for use by Pfizer in the manufacture of a critical intermediate for its proprietary active pharmaceutical ingredient, nirmatrelvir, used by Pfizer in combination with the active pharmaceutical ingredient ritonavir, as its PAXLOVID (nirmatrelvir tablets; ritonavir tablets) product for the treatment of COVID-19 infections in humans.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are a party to an Enzyme Supply Agreement with Pfizer Ireland Pharmaceuticals, a subsidiary of Pfizer, Inc. (the &#x201c;Pfizer Supply Agreement&#x201d;), covering the manufacture, sale and purchase of CDX-616 for use by Pfizer in the manufacture of nirmatrelvir. Under the terms of the Pfizer Supply Agreement, Pfizer paid us a fee of $25.9&#160;million in August 2022 which was recorded as deferred revenue. Pursuant to the agreement, 90% of the fee ($23.3&#160;million) is creditable against (i) future orders of CDX-616 used to manufacture its PAXLOVID with shipment dates prior to December 31, 2023, and (ii) fees associated with any new development and licensing agreements with Pfizer entered into prior to April 4, 2023. On March 31, 2023, we entered into a license agreement whereby Pfizer utilized a portion of the $23.3&#160;million credit towards a license to develop future product candidates, for which we recognized $5.0&#160;million as non-cash research and development revenue in the second quarter of 2023. Pfizer's ability to utilize the credit under item (i) above expired on December 31, 2023, and under item (ii) above expired on April 4, 2023. We also recognized $2.0&#160;million of non-cash research and development revenue, and credited against the $25.9&#160;million fee, for other services provided to Pfizer during the year ended December 31, 2023. Up to 50% of any portion of the $25.9&#160;million which has not been credited under items (i) and (ii) was creditable against future orders of CDX-616 used to manufacture PAXLOVID with shipment dates in 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On December 20, 2024, we entered into a license agreement whereby Pfizer utilized the remaining credit toward the upfront fee under the license agreement, pursuant to the terms of the same-day amendment to the Pfizer Supply Agreement that allowed the product credit to be utilized for this license. We recognized $9.5&#160;million of non-cash research and development revenue in the year ended December 31, 2024 related to the license agreement, and no further credit remains available for Pfizer. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the fourth quarter of 2023, and pursuant to the Pfizer Supply Agreement, we released the prior year deferrals for the unused portion of the retainer fee that is not creditable beyond 2023 and we recognized product revenue of $8.2&#160;million in the year ended December 31, 2023. We recognized product revenue of $75.4&#160;million in the year ended December&#160;31, 2022, from the sale of quantities of CDX-616 to Pfizer. Product revenues recognized by us from the Pfizer Supply Agreement represented 0%, 12%, and 54% of our total revenues for the years ended December&#160;31, 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024 and &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;, we had nil and $9.5&#160;million, respectively, in deferred revenue related to the $25.9&#160;million fee received from Pfizer.</us-gaap:CollaborativeArrangementDisclosureTextBlock>
    <cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement contextRef="c-88" id="f-551">P5Y</cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement>
    <cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement contextRef="c-89" id="f-552">P5Y</cdxs:TermOfCollaborativeResearchAndDevelopmentAgreement>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-90" decimals="-5" id="f-553" unitRef="usd">7100000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-91" decimals="-5" id="f-554" unitRef="usd">4400000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-92" decimals="-5" id="f-555" unitRef="usd">5900000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-93" decimals="2" id="f-556" unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-94" decimals="2" id="f-557" unitRef="number">0.06</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-95" decimals="2" id="f-558" unitRef="number">0.04</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-96" decimals="-5" id="f-559" unitRef="usd">2500000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-97" decimals="-5" id="f-560" unitRef="usd">3200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiability contextRef="c-98" decimals="-5" id="f-561" unitRef="usd">1300000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-99" decimals="-5" id="f-562" unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-100" decimals="-5" id="f-563" unitRef="usd">4100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-101" decimals="-5" id="f-564" unitRef="usd">7100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-102" decimals="-5" id="f-565" unitRef="usd">5000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:CollaborativeArrangementUpfrontFeeAmount contextRef="c-103" decimals="-5" id="f-566" unitRef="usd">5000000</cdxs:CollaborativeArrangementUpfrontFeeAmount>
    <us-gaap:ContractWithCustomerLiability contextRef="c-104" decimals="-5" id="f-567" unitRef="usd">5000000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-105" decimals="-5" id="f-568" unitRef="usd">4000000</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-106" decimals="-5" id="f-569" unitRef="usd">5000000.0</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:RevenueRecognitionContingentAnnualPaymentsTerm contextRef="c-107" id="f-570">P4Y</cdxs:RevenueRecognitionContingentAnnualPaymentsTerm>
    <cdxs:RevenueRecognitionContingentAnnualReceivableIncrease contextRef="c-108" decimals="-5" id="f-571" unitRef="usd">8000000</cdxs:RevenueRecognitionContingentAnnualReceivableIncrease>
    <cdxs:RevenueRecognitionAnnualPayment contextRef="c-109" decimals="-5" id="f-572" unitRef="usd">6000000</cdxs:RevenueRecognitionAnnualPayment>
    <cdxs:RevenueRecognitionAnnualPayment contextRef="c-110" decimals="-5" id="f-573" unitRef="usd">6000000</cdxs:RevenueRecognitionAnnualPayment>
    <cdxs:RevenueRecognitionAnnualPayment contextRef="c-111" decimals="-5" id="f-574" unitRef="usd">6000000</cdxs:RevenueRecognitionAnnualPayment>
    <cdxs:RevenueRecognitionNumberOfAnnualPayment
      contextRef="c-110"
      decimals="INF"
      id="f-575"
      unitRef="payment">3</cdxs:RevenueRecognitionNumberOfAnnualPayment>
    <cdxs:RevenueRecognitionNumberOfAnnualPayment
      contextRef="c-109"
      decimals="INF"
      id="f-576"
      unitRef="payment">3</cdxs:RevenueRecognitionNumberOfAnnualPayment>
    <cdxs:RevenueRecognitionNumberOfAnnualPayment
      contextRef="c-111"
      decimals="INF"
      id="f-577"
      unitRef="payment">3</cdxs:RevenueRecognitionNumberOfAnnualPayment>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-112" decimals="-5" id="f-578" unitRef="usd">1000000.0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-113" decimals="-5" id="f-579" unitRef="usd">1100000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-114" decimals="-5" id="f-580" unitRef="usd">1000000.0</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiability contextRef="c-115" decimals="-5" id="f-581" unitRef="usd">800000</us-gaap:ContractWithCustomerLiability>
    <cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment contextRef="c-116" id="f-582">P45D</cdxs:RevenueRecognitionMilestoneRevenueNumberOfDaysForPayment>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-117" decimals="-5" id="f-583" unitRef="usd">900000</cdxs:RevenueRecognitionContingentReceivable>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-118" decimals="-5" id="f-584" unitRef="usd">6000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiability contextRef="c-119" decimals="-5" id="f-585" unitRef="usd">8500000</us-gaap:ContractWithCustomerLiability>
    <cdxs:NumberOfProgramPlans contextRef="c-120" decimals="INF" id="f-586" unitRef="plan">3</cdxs:NumberOfProgramPlans>
    <cdxs:RevenueRecognitionContingentReceivable contextRef="c-121" decimals="-5" id="f-587" unitRef="usd">104000000.0</cdxs:RevenueRecognitionContingentReceivable>
    <cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance contextRef="c-122" decimals="-5" id="f-588" unitRef="usd">800000</cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance>
    <cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance contextRef="c-123" decimals="-5" id="f-589" unitRef="usd">2000000.0</cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance>
    <cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance contextRef="c-124" decimals="-5" id="f-590" unitRef="usd">4900000</cdxs:ContractWithCustomerLiabilityRevenueRecognizedIncludingOpeningBalance>
    <us-gaap:ContractWithCustomerLiability contextRef="c-125" decimals="-5" id="f-591" unitRef="usd">0</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-126" decimals="-5" id="f-592" unitRef="usd">0</us-gaap:ContractWithCustomerLiability>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-127" decimals="0" id="f-593" unitRef="shares">1587050</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-128" decimals="-5" id="f-594" unitRef="usd">1000000.0</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:ContractWithCustomerLiability contextRef="c-129" decimals="-5" id="f-595" unitRef="usd">500000</us-gaap:ContractWithCustomerLiability>
    <cdxs:ContractWithCustomerSalesMilestone contextRef="c-130" decimals="-5" id="f-596" unitRef="usd">5000000</cdxs:ContractWithCustomerSalesMilestone>
    <cdxs:RelatedPartyTransactionMilestonePaymentReceived contextRef="c-131" decimals="-5" id="f-597" unitRef="usd">1000000.0</cdxs:RelatedPartyTransactionMilestonePaymentReceived>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived contextRef="c-132" decimals="0" id="f-598" unitRef="shares">1587049</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived>
    <cdxs:RelatedPartyTransactionMilestonePaymentReceived contextRef="c-133" decimals="-5" id="f-599" unitRef="usd">1000000.0</cdxs:RelatedPartyTransactionMilestonePaymentReceived>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived contextRef="c-134" decimals="0" id="f-600" unitRef="shares">1587049</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-135" decimals="-5" id="f-601" unitRef="usd">0</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-136" decimals="-5" id="f-602" unitRef="usd">0</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-137" decimals="-5" id="f-603" unitRef="usd">1200000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-138" decimals="0" id="f-604" unitRef="shares">0</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-139" decimals="0" id="f-605" unitRef="shares">0</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-140" decimals="0" id="f-606" unitRef="shares">1587049</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-141" decimals="-5" id="f-607" unitRef="usd">100000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-142" decimals="-5" id="f-608" unitRef="usd">200000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-143" decimals="-5" id="f-609" unitRef="usd">200000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized contextRef="c-144" decimals="-5" id="f-610" unitRef="usd">500000</us-gaap:NonmonetaryTransactionGrossOperatingRevenueRecognized>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-145" decimals="-5" id="f-611" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <cdxs:ContractWithCustomerLiabilityRetainerFeeCreditablePercentage contextRef="c-146" decimals="2" id="f-612" unitRef="number">0.90</cdxs:ContractWithCustomerLiabilityRetainerFeeCreditablePercentage>
    <cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee contextRef="c-145" decimals="-5" id="f-613" unitRef="usd">23300000</cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee>
    <cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee contextRef="c-147" decimals="-5" id="f-614" unitRef="usd">23300000</cdxs:ContractWithCustomerLiabilityPortionOfRetainerFee>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-148" decimals="-5" id="f-615" unitRef="usd">5000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-149" decimals="-5" id="f-616" unitRef="usd">2000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-150" decimals="-5" id="f-617" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <cdxs:ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage contextRef="c-151" decimals="2" id="f-618" unitRef="number">0.50</cdxs:ContractWithCustomerLiabilityRetainerFeeNonCreditablePercentage>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-152" decimals="-5" id="f-619" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-153" decimals="-5" id="f-620" unitRef="usd">9500000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-154" decimals="-5" id="f-621" unitRef="usd">8200000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="c-155" decimals="-5" id="f-622" unitRef="usd">75400000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-156" decimals="2" id="f-623" unitRef="number">0</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-157" decimals="2" id="f-624" unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1 contextRef="c-158" decimals="2" id="f-625" unitRef="number">0.54</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ContractWithCustomerLiability contextRef="c-152" decimals="-5" id="f-626" unitRef="usd">0</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability contextRef="c-150" decimals="-5" id="f-627" unitRef="usd">9500000</us-gaap:ContractWithCustomerLiability>
    <cdxs:ContractWithCustomerLiabilityRetainerFee contextRef="c-145" decimals="-5" id="f-628" unitRef="usd">25900000</cdxs:ContractWithCustomerLiabilityRetainerFee>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock contextRef="c-1" id="f-629">Investments in Non-Marketable Securities&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Non-Marketable Equity Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our non-marketable equity securities are investments in privately held companies without readily determinable market value and primarily relate to our investments in MAI and seqWell. These investments are accounted for under the measurement alternative and are measured at cost minus impairment, if any, plus or minus changes resulting from observable price changes for identical or similar securities of the same issuer. Non-marketable equity securities are measured at fair value on a non-recurring basis and classified within Level 2 in the fair value hierarchy when we estimate the fair value of these investments using the observable transaction price paid by third party investors for the same or similar security of the same issuers. The fair value of non-marketable equity securities are classified within Level 3 when we estimate fair value using unobservable inputs such as when we remeasure due to impairment and we use discount rates, market data of comparable companies, and rights and obligations of the securities the Company holds, among others. We adjust the carrying value of non-marketable equity securities which have been remeasured during the period and recognize resulting gains or losses as a component interest and other expense, net in the consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2023, the 207,070 shares of Arzeda&#x2019;s Series B preferred stock were converted into 41,414 common stock pursuant to the Stock Purchase Agreement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2023, we purchased an additional&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 985,545 shares of Series B preferred stock for $0.8 million in &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;MAI, a privately held life sciences company&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. As of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2024&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, we held an aggregate of 19,277,914 shares of MAI's Series A and B preferred stock that we have earned or purchased from MAI.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2022, we entered into a Stock Purchase Agreement with seqWell, a privately held life sciences company, pursuant to which we purchased 1,000,000 shares of seqWell's Series C preferred stock for $5.0 million. In March 2023, we entered into a Master Collaboration Agreement and Research Agreement with seqWell (the &#x201c;seqWell Agreement&#x201d;), pursuant to which we provided research and experimental screening and protein engineering activities in exchange for compensation in the form of additional shares of seqWell's common stock. In January 2025, we sold &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;assets that were developed under the seqWell Agreement to seqWell in exchange for the right to receive a cash payment upon future events and a warrant to purchase seqWell&#x2019;s common stock exercisable upon future events, and terminated the seqWell Agreement. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In addition to our initial equity investment and the shares we have received under the seqWell Agreement, in September 2023, we purchased an additional 88,256 shares of seqWell's Series C-1 preferred stock and 44,128 common stock warrants for $0.4 million. We received 205,279 shares of seqWell's common stock from research and development services with seqWell and we recognized $0.2&#160;million in research and development revenue from these services in the year ended December 31, 2023. As of December&#160;31, 2024, we held an aggregate of 1,088,256 shares of Series C and C-1 preferred stock, 205,279 shares of common stock and 44,128 of common stock warrants that we have earned or purchased from seqWell.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the year ended December&#160;31, 2024, &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;we recognized an impairment charge of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$6.9 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; which is presented within interest and other expense, net in the consolidated statements of operations. This adjustment included the write-down of our investment in MAI by &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$3.9 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; during the third quarter of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; to its related fair value as determined based on valuation methods using the latest observed transaction price of MAI&#x2019;s preferred stock securities anticipated to be issued during the &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;fourth quarter&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and adjusted for the rights and obligations of the preferred stock securities the Company holds, and an additional &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$2.8 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; impairment charge during the &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;fourth quarter&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024 to adjust the carrying value of our investment to zero as the investee ceased its operations &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;during the &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;fourth quarter&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024 due to liquidity position and lack of access to additional capital&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The other $0.2 million of impairment charge on our investment in seqWell is related to the write-down to its estimated fair value using the recent transaction price of similar preferred stock securities issued by the investee and adjusted for the rights and obligations of the preferred stock securities the Company holds.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the year ended December 31, 2023, we recognized an impairment charge of $12.2&#160;million and included this as adjustment to the carrying value of our investments in seqWell, Arzeda and MAI. This adjustment, which is presented within other income (expense), net in the consolidated statements of operations, included the write-down of the carrying value of our investment in seqWell by $3.0&#160;million during the third quarter of 2023 to its estimated fair value as determined based on valuation methods using the recent transaction price of similar preferred stock securities issued by seqWell and adjusted for the rights and obligations of the preferred stock securities the Company holds. The $1.2&#160;million of impairment charge on our investment in Arzeda is related to the write-down to its estimated fair value based on the latest observed transaction price of Arzeda's preferred stock securities issued during the fourth quarter of 2023 and the subsequent conversion of our existing Series B preferred stock into Arzeda's common stock during the fourth quarter of 2023. The other $8.0&#160;million of impairment charge represents the difference between the estimated fair value and carrying value of our investment in MAI as of December 31, 2023 based on quantitative and qualitative analysis. This analysis involved use of judgment, estimates and assumptions, such as the near-term prospects of the investee in the market in which it operates, evaluation of the investee&#x2019;s financial condition in relation to its outstanding obligations, and probabilities of securing additional capital through various alternative scenarios.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the year ended December 31, 2022, we recogniz&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ed a $0.2 million u&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nrealized gain in interest and other expense, net, and included as adjustment to the carrying value of our investment in MAI, for the remeasurement of the additional 1,587,049 shares of Series B preferred stock received as a milestone payment during the third quarter of 2022 based on the latest observed transaction price of MAI's preferred stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other than as disclosed above, there were no remeasurement events for our investments in non-marketable equity securities in 2024 and 2023&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. We recognized no realized gains or losses during the years ended December&#160;31, 2024 and 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the carrying value of our non-marketable equity securities (in thousands): &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;seqWell&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;MAI&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other investments in non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-159" decimals="0" id="f-630" unitRef="shares">207070</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion contextRef="c-160" decimals="0" id="f-631" unitRef="shares">41414</us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion>
    <us-gaap:InvestmentOwnedBalanceShares contextRef="c-161" decimals="0" id="f-632" unitRef="shares">985545</us-gaap:InvestmentOwnedBalanceShares>
    <us-gaap:PaymentsToAcquireOtherInvestments contextRef="c-162" decimals="-5" id="f-633" unitRef="usd">800000</us-gaap:PaymentsToAcquireOtherInvestments>
    <us-gaap:NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1 contextRef="c-163" decimals="0" id="f-634" unitRef="shares">19277914</us-gaap:NoncashOrPartNoncashAcquisitionNoncashFinancialOrEquityInstrumentConsiderationSharesIssued1>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares
      contextRef="c-164"
      decimals="-6"
      id="f-635"
      unitRef="shares">1000000</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-164" decimals="-5" id="f-636" unitRef="usd">5000000.0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-165" decimals="0" id="f-637" unitRef="shares">88256</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-166" decimals="0" id="f-638" unitRef="shares">44128</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-166" decimals="-5" id="f-639" unitRef="usd">400000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices contextRef="c-167" decimals="0" id="f-640" unitRef="shares">205279</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-168" decimals="-3" id="f-641" unitRef="usd">200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-169" decimals="0" id="f-642" unitRef="shares">1088256</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-170" decimals="0" id="f-643" unitRef="shares">205279</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares contextRef="c-171" decimals="0" id="f-644" unitRef="shares">44128</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueShares>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-1" decimals="-5" id="f-645" unitRef="usd">6900000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-172" decimals="-5" id="f-646" unitRef="usd">-3900000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-173" decimals="-5" id="f-647" unitRef="usd">-2800000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-174" decimals="-5" id="f-648" unitRef="usd">200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-18" decimals="-5" id="f-649" unitRef="usd">12200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-175" decimals="-5" id="f-650" unitRef="usd">3000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-176" decimals="-5" id="f-651" unitRef="usd">1200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount contextRef="c-177" decimals="-5" id="f-652" unitRef="usd">8000000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueImpairmentLossAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount contextRef="c-19" decimals="-5" id="f-653" unitRef="usd">200000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived contextRef="c-178" decimals="0" id="f-654" unitRef="shares">1587049</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueSharesMilestonePaymentsReceived>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount contextRef="c-1" decimals="-5" id="f-655" unitRef="usd">0</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount>
    <cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount contextRef="c-18" decimals="-5" id="f-656" unitRef="usd">0</cdxs:EquitySecuritiesWithoutReadilyDeterminableFairValueRealizedUpwardDownwardPriceAdjustmentAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock contextRef="c-1" id="f-657">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the carrying value of our non-marketable equity securities (in thousands): &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;seqWell&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,416&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;MAI&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other investments in non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;382&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total non-marketable equity securities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueTableTextBlock>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-179" decimals="-3" id="f-658" unitRef="usd">2416000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-180" decimals="-3" id="f-659" unitRef="usd">2625000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-181" decimals="-3" id="f-660" unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-182" decimals="-3" id="f-661" unitRef="usd">6693000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-183" decimals="-3" id="f-662" unitRef="usd">382000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-184" decimals="-3" id="f-663" unitRef="usd">382000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-4" decimals="-3" id="f-664" unitRef="usd">2798000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount contextRef="c-5" decimals="-3" id="f-665" unitRef="usd">9700000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:FairValueMeasurementInputsDisclosureTextBlock contextRef="c-1" id="f-666">Fair Value Measurements&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables show the Company&#x2019;s cash, cash equivalents, and short-term investments by significant investment category (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.605%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Short-term Investments&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 1:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,980&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,980&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,980&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,768&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,769&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,769&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;U.S. agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;U.S. treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Subtotal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,194&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,194&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;73,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;73,458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,264&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,194&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt; The valuation techniques used to measure the fair values of the Company&#x2019;s Level 2 financial instruments uses inputs that are either directly or indirectly observable for the asset through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.605%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Short-term Investments&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 1:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We limit the credit risk associated with our cash equivalents and short-term investments by placing them with banks and institutions we believe are highly credit-worthy and investing in highly-rated investments. As of December&#160;31, 2024, the contractual maturity of all investments held was less than one year. &lt;/span&gt;&lt;/div&gt;During the years ended December&#160;31, 2024 and 2023, we did not recognize any significant credit losses nor other-than-temporary impairment losses on non-marketable securities.</us-gaap:FairValueMeasurementInputsDisclosureTextBlock>
    <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="c-1" id="f-667">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables show the Company&#x2019;s cash, cash equivalents, and short-term investments by significant investment category (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.605%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Short-term Investments&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 1:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,980&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,980&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,980&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,768&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,769&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,769&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Corporate debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,187&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,180&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;U.S. agency securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,991&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;U.S. treasury securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,198&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Subtotal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,194&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,194&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;73,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;73,458&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,264&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,194&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:400;line-height:120%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt; The valuation techniques used to measure the fair values of the Company&#x2019;s Level 2 financial instruments uses inputs that are either directly or indirectly observable for the asset through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.595%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.605%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Unrealized Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Short-term Investments&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Level 1:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
    <us-gaap:Cash contextRef="c-4" decimals="-3" id="f-668" unitRef="usd">3284000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-4" decimals="-3" id="f-669" unitRef="usd">3284000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-185" decimals="-3" id="f-670" unitRef="usd">3284000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-186" decimals="-3" id="f-671" unitRef="usd">0</us-gaap:Cash>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-187" decimals="-3" id="f-672" unitRef="usd">15980000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-187" decimals="-3" id="f-673" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-187" decimals="-3" id="f-674" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-187" decimals="-3" id="f-675" unitRef="usd">15980000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-188" decimals="-3" id="f-676" unitRef="usd">15980000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-189" decimals="-3" id="f-677" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-190" decimals="-3" id="f-678" unitRef="usd">6768000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-190" decimals="-3" id="f-679" unitRef="usd">1000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-190" decimals="-3" id="f-680" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-190" decimals="-3" id="f-681" unitRef="usd">6769000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-191" decimals="-3" id="f-682" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-192" decimals="-3" id="f-683" unitRef="usd">6769000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-193" decimals="-3" id="f-684" unitRef="usd">17187000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-193" decimals="-3" id="f-685" unitRef="usd">8000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-193" decimals="-3" id="f-686" unitRef="usd">15000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-193" decimals="-3" id="f-687" unitRef="usd">17180000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-194" decimals="-3" id="f-688" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-195" decimals="-3" id="f-689" unitRef="usd">17180000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-196" decimals="-3" id="f-690" unitRef="usd">1989000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-196" decimals="-3" id="f-691" unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-196" decimals="-3" id="f-692" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-196" decimals="-3" id="f-693" unitRef="usd">1991000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-197" decimals="-3" id="f-694" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-198" decimals="-3" id="f-695" unitRef="usd">1991000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-199" decimals="-3" id="f-696" unitRef="usd">28198000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-199" decimals="-3" id="f-697" unitRef="usd">56000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-199" decimals="-3" id="f-698" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-199" decimals="-3" id="f-699" unitRef="usd">28254000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-200" decimals="-3" id="f-700" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-201" decimals="-3" id="f-701" unitRef="usd">28254000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-202" decimals="-3" id="f-702" unitRef="usd">54142000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-202" decimals="-3" id="f-703" unitRef="usd">67000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-202" decimals="-3" id="f-704" unitRef="usd">15000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-202" decimals="-3" id="f-705" unitRef="usd">54194000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-203" decimals="-3" id="f-706" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-204" decimals="-3" id="f-707" unitRef="usd">54194000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <cdxs:CashCashEquivalentsAndShortTermInvestmentsAmortizedCost contextRef="c-4" decimals="-3" id="f-708" unitRef="usd">73406000</cdxs:CashCashEquivalentsAndShortTermInvestmentsAmortizedCost>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-4" decimals="-3" id="f-709" unitRef="usd">67000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-4" decimals="-3" id="f-710" unitRef="usd">15000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-4" decimals="-3" id="f-711" unitRef="usd">73458000</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-185" decimals="-3" id="f-712" unitRef="usd">19264000</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-186" decimals="-3" id="f-713" unitRef="usd">54194000</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:Cash contextRef="c-5" decimals="-3" id="f-714" unitRef="usd">8742000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-5" decimals="-3" id="f-715" unitRef="usd">8742000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-205" decimals="-3" id="f-716" unitRef="usd">8742000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-206" decimals="-3" id="f-717" unitRef="usd">0</us-gaap:Cash>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-207" decimals="-3" id="f-718" unitRef="usd">56374000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-207" decimals="-3" id="f-719" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-207" decimals="-3" id="f-720" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-207" decimals="-3" id="f-721" unitRef="usd">56374000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-208" decimals="-3" id="f-722" unitRef="usd">56374000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-209" decimals="-3" id="f-723" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <cdxs:CashCashEquivalentsAndShortTermInvestmentsAmortizedCost contextRef="c-5" decimals="-3" id="f-724" unitRef="usd">65116000</cdxs:CashCashEquivalentsAndShortTermInvestmentsAmortizedCost>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-5" decimals="-3" id="f-725" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-5" decimals="-3" id="f-726" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-5" decimals="-3" id="f-727" unitRef="usd">65116000</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-205" decimals="-3" id="f-728" unitRef="usd">65116000</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:CashCashEquivalentsAndShortTermInvestments contextRef="c-206" decimals="-3" id="f-729" unitRef="usd">0</us-gaap:CashCashEquivalentsAndShortTermInvestments>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff contextRef="c-210" decimals="INF" id="f-730" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff contextRef="c-211" decimals="INF" id="f-731" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossWriteoff>
    <us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss contextRef="c-210" decimals="INF" id="f-732" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss>
    <us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss contextRef="c-211" decimals="INF" id="f-733" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesGrossUnrealizedLoss>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock contextRef="c-1" id="f-734">Balance Sheet Details &lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Raw materials &lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Work in process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finished goods &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,799&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,685&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, prepaid expenses and other current assets consists of prepaid expenses of $3.7 million and other current assets of $0.5 million.  As of December&#160;31, 2023, prepaid expenses and other current assets consists of prepaid expenses of $4.6 million and other current assets of $0.6 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment, net&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, net consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;35,949&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;37,216&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Computer equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,565&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Office furniture and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,469&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Construction in progress&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,636&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;55,132&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(40,935)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(39,311)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Fully depreciated property and equipment with a cost of $2.6 million and $3.0 million were retired during the years ended December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Construction in progress includes equipment received but not yet placed into service pending installation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, we announced our plan to consolidate operations from our San Carlos facility to our headquarters in Redwood City. As part of this plan, we entered into agreements to sell certain laboratory equipment located in our San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos facility to Vaxcyte (see further discussion at Note 13, &#x201c;Commitments and Contingencies&#x201d;). These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based on Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeded fair value less costs to sell, which resulted in a write-down o&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;f $1.5&#160;million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December 31, 2023, the Company recorded a n&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;on-cash impairment charge of $4.7 million associated with the San Carlos facility leasehold improvements. For additional information, see Note 13, &#x201c;Commitments and Contingencies.&#x201d; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation expense included in both research and development expenses and selling, general and administrative expenses in the consolidated statements of operations was as follows (in thousands):&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,594&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;846&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total depreciation expense&#160;&#160;&#160;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at beginning of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(778)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at end of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill was previously allocated to each of the Company's reporting units. In July 2023, we announced a restructuring of our business and that we are discontinuing investment in certain development programs, primarily in Novel Biotherapeutics. As a result of this plan, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of $0.8&#160;million to write off all of the associated goodwill. The impairment charge is recorded within the asset impairment and other charges in the consolidated statements of operation in the year ended &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December 31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. Goodwill had a carrying &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;value &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$2.5 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;as of December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Other Accrued Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other accrued liabilities consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued professional and outside service fees&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,064&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued purchases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,908&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;251&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total other accrued liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,223&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,735&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c-1" id="f-735">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Raw materials &lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Work in process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finished goods &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,799&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,685&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials contextRef="c-4" decimals="-3" id="f-736" unitRef="usd">0</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials contextRef="c-5" decimals="-3" id="f-737" unitRef="usd">108000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess contextRef="c-4" decimals="-3" id="f-738" unitRef="usd">29000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess contextRef="c-5" decimals="-3" id="f-739" unitRef="usd">7000</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods contextRef="c-4" decimals="-3" id="f-740" unitRef="usd">1770000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods contextRef="c-5" decimals="-3" id="f-741" unitRef="usd">2570000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryNet contextRef="c-4" decimals="-3" id="f-742" unitRef="usd">1799000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-5" decimals="-3" id="f-743" unitRef="usd">2685000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseCurrent contextRef="c-4" decimals="-5" id="f-744" unitRef="usd">3700000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent contextRef="c-4" decimals="-5" id="f-745" unitRef="usd">500000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PrepaidExpenseCurrent contextRef="c-5" decimals="-5" id="f-746" unitRef="usd">4600000</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:OtherAssetsCurrent contextRef="c-5" decimals="-5" id="f-747" unitRef="usd">600000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-212" decimals="-3" id="f-748" unitRef="usd">35949000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-213" decimals="-3" id="f-749" unitRef="usd">37216000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-214" decimals="-3" id="f-750" unitRef="usd">12159000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-215" decimals="-3" id="f-751" unitRef="usd">11912000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-216" decimals="-3" id="f-752" unitRef="usd">2459000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-217" decimals="-3" id="f-753" unitRef="usd">2565000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-57" decimals="-3" id="f-754" unitRef="usd">1124000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-218" decimals="-3" id="f-755" unitRef="usd">1469000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-219" decimals="-3" id="f-756" unitRef="usd">3441000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-220" decimals="-3" id="f-757" unitRef="usd">1636000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-4" decimals="-3" id="f-758" unitRef="usd">55132000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-5" decimals="-3" id="f-759" unitRef="usd">54798000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-760" unitRef="usd">40935000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-761" unitRef="usd">39311000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-4" decimals="-3" id="f-762" unitRef="usd">14197000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-5" decimals="-3" id="f-763" unitRef="usd">15487000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-221" decimals="-5" id="f-764" unitRef="usd">2600000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-222" decimals="-5" id="f-765" unitRef="usd">3000000.0</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AssetImpairmentCharges contextRef="c-223" decimals="-5" id="f-766" unitRef="usd">1500000</us-gaap:AssetImpairmentCharges>
    <us-gaap:ImpairmentOfLeasehold contextRef="c-223" decimals="-5" id="f-767" unitRef="usd">4700000</us-gaap:ImpairmentOfLeasehold>
    <us-gaap:Depreciation contextRef="c-224" decimals="-3" id="f-768" unitRef="usd">3964000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-225" decimals="-3" id="f-769" unitRef="usd">4594000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-226" decimals="-3" id="f-770" unitRef="usd">4556000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-227" decimals="-3" id="f-771" unitRef="usd">881000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-228" decimals="-3" id="f-772" unitRef="usd">924000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-229" decimals="-3" id="f-773" unitRef="usd">846000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-1" decimals="-3" id="f-774" unitRef="usd">4845000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-18" decimals="-3" id="f-775" unitRef="usd">5518000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-19" decimals="-3" id="f-776" unitRef="usd">5402000</us-gaap:Depreciation>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="c-1" id="f-777">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at beginning of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Impairment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(778)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Goodwill at end of period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-778" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-35" decimals="-3" id="f-779" unitRef="usd">3241000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-1" decimals="-3" id="f-780" unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-18" decimals="-3" id="f-781" unitRef="usd">778000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:Goodwill contextRef="c-4" decimals="-3" id="f-782" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-3" id="f-783" unitRef="usd">2463000</us-gaap:Goodwill>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-59" decimals="-5" id="f-784" unitRef="usd">800000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:Goodwill contextRef="c-4" decimals="-5" id="f-785" unitRef="usd">2500000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-5" decimals="-5" id="f-786" unitRef="usd">2500000</us-gaap:Goodwill>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="c-1" id="f-787">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other accrued liabilities consisted of the following (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued professional and outside service fees&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,064&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Accrued purchases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,908&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;251&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total other accrued liabilities&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,223&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,735&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent contextRef="c-4" decimals="-3" id="f-788" unitRef="usd">3064000</us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent>
    <us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent contextRef="c-5" decimals="-3" id="f-789" unitRef="usd">2330000</us-gaap:AccruedProfessionalFeesCurrentAndNoncurrent>
    <us-gaap:PurchaseObligation contextRef="c-4" decimals="-3" id="f-790" unitRef="usd">2908000</us-gaap:PurchaseObligation>
    <us-gaap:PurchaseObligation contextRef="c-5" decimals="-3" id="f-791" unitRef="usd">1402000</us-gaap:PurchaseObligation>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent contextRef="c-4" decimals="-3" id="f-792" unitRef="usd">251000</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent contextRef="c-5" decimals="-3" id="f-793" unitRef="usd">1003000</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-4" decimals="-3" id="f-794" unitRef="usd">6223000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-5" decimals="-3" id="f-795" unitRef="usd">4735000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="c-1" id="f-796">Stock-based Compensation&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Equity Incentive Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In August 2024, our Board of Directors (the &#x201c;Board&#x201d;) approved the 2024 Employment Inducement Award Plan (the &#x201c;2024 Inducement Plan&#x201d;) which provides for the grant of non-qualified stock options, RSAs, restricted stock units (&#x201c;RSUs&#x201d;), and performance awards to eligible employees with respect to an aggregate of up to 1,000,000 shares of our common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2023, our Board approved the 2022 Employment Inducement Award Plan (the &#x201c;2022 Inducement Plan&#x201d;) which provides for the grant of non-qualified stock options, RSAs, RSUs, performance awards, other stock awards and dividend equivalents to eligible employees with respect to an aggregate of up to 2,000,000 shares of our common stock. In June 2023, the 2022 Inducement Plan was terminated upon the approval of an amendment to the Company's 2019 Incentive Award Plan (the &#x201c;2019 Plan&#x201d;) at the Annual Meeting of Stockholders in June 2023 (the &#x201c;2023 Annual Meeting&#x201d;).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2019, the Board and stockholders approved the 2019 Plan. The 2019 Plan superseded and replaced in its entirety our 2010 Equity Incentive Plan (the &#x201c;2010 Plan&#x201d;) which was effective in March 2010, and no further awards will be granted under the 2010 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards thereunder. The 2010 Plan provided for the grant of incentive stock options, non-statutory stock options, RSUs, RSAs, PSUs, PBOs, stock appreciation rights, and stock purchase rights to our employees, non-employee directors and consultants. The 2019 Plan provides for the grant of stock options, including incentive stock options and non-qualified stock options, stock appreciation rights, RSAs, RSUs, PSUs, PBOs, other stock or cash based awards and dividend equivalents to eligible employees and consultants of the Company or any parent or subsidiary, as well as members of the Board.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The number of shares of our common stock that were initially available for issuance under the 2019 Plan is equal to the sum of (i) 7,897,144 shares, and (ii)&#160;any shares subject to awards granted under the 2010 Plan that were outstanding as of April&#160;22, 2019 and thereafter terminate, expire, lapse or are forfeited. In June 2019, 8.1&#160;million shares authorized for issuance under the 2019 Plan were registered under the Securities Act. In April 2023, the Board approved an amendment to the 2019 Plan (the &#x201c;2019 Amended Plan&#x201d;) which became effective upon stockholders' approval at the 2023 Annual Meeting. The 2019 Amended Plan included the (i) increase in the number of shares available by 8,000,000 shares, such that an aggregate of 15,897,144 shares are reserved for issuance under the 2019 Amended Plan and any shares subject to awards granted under the 2010 Plan, and (ii) increase in the number of shares that may be granted as incentive stock options under the 2019 Amended Plan such that an aggregate of 22,000,000 shares of common stock may be granted as incentive stock options under the 2019 Amended Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, total shares remaining available for issuance under the 2019 Plan and 2024 Inducement Plan were&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 3,937,070 s&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;hares.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Employee Stock Purchase Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2023, the Board approved an employee stock purchase plan (as may be amended from time to time, the &#x201c;ESPP&#x201d;) which became effective upon approval at the 2023 Annual Meeting. The ESPP allows eligible employees of the Company to purchase shares of our common stock through payroll deductions. Offering periods are generally over a 24-month period and begin in May and November of each year. The per share purchase price will be the lower of 85% of the closing trading price per share of our common stock on the first trading date of an offering period in which a participant is enrolled or 85% of the closing trading price per share on the purchase date. Participant purchases are limited to a maximum of $25,000 of fair value of our stock per calendar year. The Company is authorized to grant up to 2,000,000 shares of common stock under the ESPP. The first offering period of the ESPP commenced in December 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the year ended December&#160;31, 2024, 263,157 shares of our common stock were purchased under the ESPP. As of December&#160;31, 2024, 1,736,843 shares of common stock were available for future issuance under the ESPP. We recognized $0.3 million of stock-based compensation expenses related to the ESPP for the year ended December&#160;31, 2024. As of December&#160;31, 2024, the total unrecognized stock-based compensation expense, net of expected forfeitures, related to the ESPP was $0.6 million and is expected to be recognized over the remaining offering period. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options granted to employees generally have a maximum term of ten years and vest over four years from the date of grant, of which 25% vest at the end of one year, and 75% vest monthly over the remaining three years. We may grant options with different vesting terms from time to time. In January 2024, the Board approved the grants of stock options with a vesting term over three years from the date of grant, of which 33% vest at the end of one year, and 67% vest monthly over the remaining two years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unless an employee's termination of service is due to disability or death, upon termination of service, any unexercised vested options will be forfeited at the end of three months or the expiration of the option, whichever is earlier.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Units (&#x201c;RSUs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We also grant employees RSUs, which generally vest over either a three-year period with 33% of the shares subject to the RSUs vesting on each yearly anniversary of the vesting commencement date or over a four-year period with 25% of the shares subject to the RSU vesting on each yearly anniversary of the vesting commencement date, in each case contingent upon such employee&#x2019;s continued service on such vesting date. RSUs are generally subject to forfeiture if employment terminates prior to the release of vesting restrictions. We may grant RSUs with different vesting terms from time to time.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Performance-contingent Restricted Stock Units (&#x201c;PSUs&#x201d;) and Performance Based Options (&#x201c;PBOs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In prior years, the compensation committee of the Board approved grants of PBOs and PSUs to our executives, and solely in respect of non-executive employees, delegated to our CEO the authority to approve grants of PSUs. The PSUs and PBOs vest based upon both the successful achievement of certain corporate operating milestones in specified timelines and continued employment through the applicable vesting date. When the performance goals are deemed to be probable of achievement for these types of awards, recognition of stock-based compensation expense commences. Once the number of shares eligible to vest is determined, those shares vest in two equal installments with 50% vesting upon achievement, as determined by the compensation committee of the Board, and the remaining 50% vesting on the first anniversary of achievement, in each case, subject to the recipient&#x2019;s continued service through the applicable vesting date. If the performance goals are achieved at the threshold level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to half the number of PSUs granted and one-quarter the number of shares underlying the PBOs granted. If the performance goals are achieved at the target level, the number of shares eligible to vest in respect of the PSUs and PBOs would be equal to the number of PSUs granted and half of the shares underlying the PBOs granted. If the performance goals are achieved at the superior level, the number of shares eligible to vest in respect of the PSUs would be equal to two times the number of PSUs granted and equal to the number of PBOs granted. The number of shares issuable upon achievement of the performance goals at the levels between the threshold and target levels for the PSUs and PBOs or between the target level and superior levels for the PSUs would be determined using linear interpolation. Achievement below the threshold level would result in no shares being eligible to vest in respect of the PSUs and PBOs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;No PSUs and PBOs were granted in 2024 and 2023. In 2022, we awarded PSUs (&#x201c;2022 PSUs&#x201d;) and PBOs (&#x201c;2022 PBOs&#x201d;), each of which commence vesting based upon the achievement of various weighted performance go&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;als, including finance and corporate strategy, performance enzymes and biotherapeutics deliverables, research plans, and organizational development. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the first quarter of 2023, the compensation committee of the Board determined that the 2022 PSUs and 2022 PBOs performance goals had been achieved at&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 85.0% and 42.5% of the target level, respectively, and recognized stock-based compensation expenses accordingly. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accordingly, 50% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2023 and 50% of the shares underlying the 2022 PSUs and PBOs vested in the first quarter of 2024, in each case, subject to the recipient&#x2019;s continued service on each vesting date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;354&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,986&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,423&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;RSUs and RSAs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,717&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,447&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,807&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PSUs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;247&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PBOs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,289&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;ESPP&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;343&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the fourth quarter of 2024, we entered into Separation and Consulting Agreements with Sri Ryali, our former Chief Financial Officer, and two other former executives. Under these&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; agreements, the outstanding unvested options and awards for each of the three former executives will continue to vest through the end of their consultancy period, which concludes on February 28, 2025. This modification resulted in a reduction of stock-based compensation expense of $0.4 million recognized in selling, general and administrative expenses during the year ended December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 29, 2024, we entered into an Advisory Services Agreement with a former executive of the Company. Pursuant to the advisory agreement, the exercise period for the former executive&#x2019;s vested stock options and performance-based options was also extended. This modification resulted in a stock-based compensation expense of $2.0 million recognized in selling, general and administrative expenses during the year ended December&#160;31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the retirement of John Nicols, our former President and Chief Executive Officer, in August 2022, and the Transition and Separation Agreement between Mr. Nicols and the Company, certain supplementary modifications were made to Mr. Nicols' vested and unvested stock option and PBOs awards including voluntary forfeiture of certain unvested stock option and PBOs awards and the extension of the post-termination exercise period of certain vested stock option and PBOs awards. During the year ended December 31, 2022, we recorded a one-time, non-cash incremental compensation expense of $1.0 million, net of the required reversal of previously recognized stock-based compensation expenses attributed to unvested shares, in selling, general and administrative expenses related to these stock option award modifications.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Grant Award Activities:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock Option Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We estimated the fair value of stock options using the Black-Scholes-Merton option-pricing model based on the date of grant. The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.9&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;73.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;66.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;62.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following summarizes the weighted-average assumptions used to estimate the fair value of 20,000 and 50,000 shares of stock options granted to non-employees for services valued at $44 thousand and $0.1 million during the years ended December&#160;31, 2024 and 2023, respectively:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;74.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted average grant date fair value per share of non-employee stock options granted respectively in 2024 and 2023 was $2.19 and $1.05, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s stock option activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(410)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(275)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,046&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(283)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,837&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(399)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(484)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.75&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average Remaining Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,497&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,508&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,724&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted average grant date fair value per share of employee stock options granted in 2024, 2023, and 2022 were $2.05, $3.31 and $4.99, respectively. The total intrinsic value of options exercised in 2024, 2023, and 2022 were $0.6&#160;million, $0.7&#160;million and $3.1&#160;million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, the&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;re was $11.3 million of unrecognized stock-based compensation, net of expected forfeitures, related to unvested stock options, which we expect to recognize over a weighted average period of 2.3 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Restricted Stock Awards (&#x201c;RSAs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSA activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(133)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.04&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(302)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value, as of the vesting date, of RSAs vested in fiscal years 2024, 2023 and 2022&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; were $1.0 million, $0.4 million and $0.5 million respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, there was $0.4 million of unrecognized stock-based compensation cost related to non-vested RSAs, which we expect to recognize over a weighted average period of 0.5 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Restricted Stock Units (&#x201c;RSUs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(106)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(204)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(343)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(383)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(157)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,010&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value, as of the vesting date, of RSUs vested in fiscal years 2024, 2023 and 2022 were &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.1 million&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, $1.1 million and $1.8 million respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, there was &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$4.2 million of unrecognized stock-based compensation cost related to non-vested RSUs, which we expect to recognize over a weighted average period of 1.8 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Performance-Contingent Restricted Stock Units (&#x201c;PSUs&#x201d;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes PSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(107)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(40)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;667&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.02&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;292&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(248)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(44)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value, as of the vesting date, of PSUs vested in the years ended December 31, 2024, 2023, and 2022 were $0.9 million, $1.6 million, and $2.1 million, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, there was nil of unrecognized stock-based compensation cost related to non-vested PSUs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Performance Based Options (&#x201c;PBOs&#x201d;) &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We estimated the fair value of PBOs using the Black-Scholes-Merton option-pricing model based on the date of grant. No PBOs were granted to employees for their services during the year ended December&#160;31, 2024. The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:76.531%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:21.269%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarizes PBOs activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;br/&gt;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(747)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.70&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(178)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(73)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.43&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.62&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.62&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total fair value of e&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;xercised PBOs for 2024, 2023 and 2022, was nil. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, there was &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;nil&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; of unrecognized stock-based compensation cost related to non-vested PBOs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Employee Stock Purchase Plan (&#x201c;ESPP&#x201d;) &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;89.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;89.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-230"
      decimals="-6"
      id="f-797"
      unitRef="shares">1000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-231"
      decimals="-6"
      id="f-798"
      unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="c-232" decimals="0" id="f-799" unitRef="shares">7897144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-233"
      decimals="-5"
      id="f-800"
      unitRef="shares">8100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
      contextRef="c-234"
      decimals="-6"
      id="f-801"
      unitRef="shares">8000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized contextRef="c-235" decimals="0" id="f-802" unitRef="shares">15897144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="c-235"
      decimals="-6"
      id="f-803"
      unitRef="shares">22000000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="c-236" decimals="0" id="f-804" unitRef="shares">3937070</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <cdxs:ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod contextRef="c-237" id="f-805">P24M</cdxs:ShareBasedCompensationArrangementBySharebasedPaymentAwardConsecutiveOfferingPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent contextRef="c-237" decimals="2" id="f-806" unitRef="number">0.85</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent contextRef="c-237" decimals="2" id="f-807" unitRef="number">0.85</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount contextRef="c-237" decimals="INF" id="f-808" unitRef="usd">25000</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardMaximumEmployeeSubscriptionAmount>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-238"
      decimals="-6"
      id="f-809"
      unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod contextRef="c-239" decimals="0" id="f-810" unitRef="shares">263157</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance contextRef="c-240" decimals="0" id="f-811" unitRef="shares">1736843</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-239" decimals="-5" id="f-812" unitRef="usd">300000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="c-240" decimals="-5" id="f-813" unitRef="usd">600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="c-241" id="f-814">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-241" id="f-815">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-242" decimals="2" id="f-816" unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-242" id="f-817">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-243" decimals="2" id="f-818" unitRef="number">0.75</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-243" id="f-819">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-244" id="f-820">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-245" decimals="2" id="f-821" unitRef="number">0.33</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-245" id="f-822">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-246" decimals="2" id="f-823" unitRef="number">0.67</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-246" id="f-824">P2Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService contextRef="c-241" id="f-825">P3M</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardExpirationPeriodUponTerminationOfService>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-247" id="f-826">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-247" decimals="2" id="f-827" unitRef="number">0.33</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-248" id="f-828">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-248" decimals="2" id="f-829" unitRef="number">0.25</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments
      contextRef="c-249"
      decimals="INF"
      id="f-830"
      unitRef="installment">2</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardNumberofInstallments>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-250" decimals="2" id="f-831" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-251" decimals="2" id="f-832" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier contextRef="c-252" decimals="INF" id="f-833" unitRef="time">2</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceGoalsAchievedSuperiorLevelSharesEligibleToVestMultiplier>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier
      contextRef="c-253"
      decimals="INF"
      id="f-834"
      unitRef="number">0</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardPerformanceAwardsThresholdLevelNumberofSharesMultiplier>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-252"
      decimals="INF"
      id="f-835"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-254"
      decimals="INF"
      id="f-836"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate contextRef="c-255" decimals="3" id="f-837" unitRef="number">0.850</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate>
    <cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate contextRef="c-256" decimals="3" id="f-838" unitRef="number">0.425</cdxs:SharebasedCompensationArrangementbySharebasedPaymentAwardEstimatedPerformanceGoalAchievementRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-257" decimals="2" id="f-839" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage contextRef="c-258" decimals="2" id="f-840" unitRef="number">0.50</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="c-1" id="f-841">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense is included in the consolidated statements of operations as follows (in thousands):&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Costs of product revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;354&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,986&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,172&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents total stock-based compensation expense by security type included in the consolidated statements of operations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,423&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;RSUs and RSAs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,717&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,447&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,807&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PSUs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;247&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,268&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;PBOs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,289&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;ESPP&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;343&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,971&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;14,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:ShareBasedCompensation contextRef="c-259" decimals="-3" id="f-842" unitRef="usd">429000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-260" decimals="-3" id="f-843" unitRef="usd">354000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-261" decimals="-3" id="f-844" unitRef="usd">452000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-224" decimals="-3" id="f-845" unitRef="usd">2928000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-225" decimals="-3" id="f-846" unitRef="usd">2631000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-226" decimals="-3" id="f-847" unitRef="usd">3907000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-227" decimals="-3" id="f-848" unitRef="usd">9730000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-228" decimals="-3" id="f-849" unitRef="usd">6986000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-229" decimals="-3" id="f-850" unitRef="usd">10172000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="-3" id="f-851" unitRef="usd">13087000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-18" decimals="-3" id="f-852" unitRef="usd">9971000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-19" decimals="-3" id="f-853" unitRef="usd">14531000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-241" decimals="-3" id="f-854" unitRef="usd">6423000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-262" decimals="-3" id="f-855" unitRef="usd">3962000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-263" decimals="-3" id="f-856" unitRef="usd">4167000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-264" decimals="-3" id="f-857" unitRef="usd">4717000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-265" decimals="-3" id="f-858" unitRef="usd">4447000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-266" decimals="-3" id="f-859" unitRef="usd">4807000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-267" decimals="-3" id="f-860" unitRef="usd">247000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-268" decimals="-3" id="f-861" unitRef="usd">1649000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-269" decimals="-3" id="f-862" unitRef="usd">3268000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-270" decimals="-3" id="f-863" unitRef="usd">1357000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-254" decimals="-3" id="f-864" unitRef="usd">-112000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-271" decimals="-3" id="f-865" unitRef="usd">2289000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-239" decimals="-3" id="f-866" unitRef="usd">343000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-272" decimals="-3" id="f-867" unitRef="usd">25000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-273" decimals="-3" id="f-868" unitRef="usd">0</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-1" decimals="-3" id="f-869" unitRef="usd">13087000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-18" decimals="-3" id="f-870" unitRef="usd">9971000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation contextRef="c-19" decimals="-3" id="f-871" unitRef="usd">14531000</us-gaap:ShareBasedCompensation>
    <cdxs:NumberOfOtherFormerExecutive
      contextRef="c-274"
      decimals="INF"
      id="f-872"
      unitRef="executive">2</cdxs:NumberOfOtherFormerExecutive>
    <cdxs:NumberOfFormerExecutives
      contextRef="c-274"
      decimals="INF"
      id="f-873"
      unitRef="executive">3</cdxs:NumberOfFormerExecutives>
    <cdxs:ShareBasedPaymentArrangementExpenseIncreaseDecrease contextRef="c-1" decimals="-5" id="f-874" unitRef="usd">-400000</cdxs:ShareBasedPaymentArrangementExpenseIncreaseDecrease>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-1" decimals="-5" id="f-875" unitRef="usd">2000000.0</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-19" decimals="-5" id="f-876" unitRef="usd">1000000.0</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="c-1" id="f-877">The following summarizes the weighted-average assumptions used to estimate the fair value of employee stock options granted:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.9&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.7&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;73.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;66.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;62.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following summarizes the weighted-average assumptions used to estimate the fair value of 20,000 and 50,000 shares of stock options granted to non-employees for services valued at $44 thousand and $0.1 million during the years ended December&#160;31, 2024 and 2023, respectively:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.8&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;74.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;The following summarize the weighted-average assumptions used to estimate the fair value of PBOs granted:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:76.531%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:21.269%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;54.9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.8&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-241" id="f-878">P5Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-262" id="f-879">P5Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-263" id="f-880">P5Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-241" decimals="3" id="f-881" unitRef="number">0.733</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-262" decimals="3" id="f-882" unitRef="number">0.662</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-263" decimals="3" id="f-883" unitRef="number">0.621</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-241" decimals="3" id="f-884" unitRef="number">0.039</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-262" decimals="3" id="f-885" unitRef="number">0.040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-263" decimals="3" id="f-886" unitRef="number">0.031</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-241" decimals="3" id="f-887" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-262" decimals="3" id="f-888" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-263" decimals="3" id="f-889" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c-275"
      decimals="-3"
      id="f-890"
      unitRef="shares">20000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c-276"
      decimals="-3"
      id="f-891"
      unitRef="shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-275" decimals="-3" id="f-892" unitRef="usd">44000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-276" decimals="-5" id="f-893" unitRef="usd">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-277" id="f-894">P5Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-278" id="f-895">P5Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-277" decimals="3" id="f-896" unitRef="number">0.747</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="c-278" decimals="3" id="f-897" unitRef="number">0.701</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-277" decimals="3" id="f-898" unitRef="number">0.044</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="c-278" decimals="3" id="f-899" unitRef="number">0.047</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-277" decimals="3" id="f-900" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="c-278" decimals="3" id="f-901" unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-275"
      decimals="2"
      id="f-902"
      unitRef="usdPerShare">2.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-276"
      decimals="2"
      id="f-903"
      unitRef="usdPerShare">1.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="c-1" id="f-904">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;s stock option activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(410)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(275)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.88&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,046&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(283)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.97&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(839)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,837&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(399)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(484)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.75&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average Remaining Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,497&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;402&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,508&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,724&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-27" decimals="-3" id="f-905" unitRef="shares">2935000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-27"
      decimals="2"
      id="f-906"
      unitRef="usdPerShare">8.90</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-19" decimals="-3" id="f-907" unitRef="shares">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-19"
      decimals="2"
      id="f-908"
      unitRef="usdPerShare">8.90</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-19" decimals="-3" id="f-909" unitRef="shares">410000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-19"
      decimals="2"
      id="f-910"
      unitRef="usdPerShare">2.33</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-19" decimals="-3" id="f-911" unitRef="shares">275000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-19"
      decimals="2"
      id="f-912"
      unitRef="usdPerShare">19.01</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-35" decimals="-3" id="f-913" unitRef="shares">4250000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-35"
      decimals="2"
      id="f-914"
      unitRef="usdPerShare">8.88</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-18" decimals="-3" id="f-915" unitRef="shares">2046000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-18"
      decimals="2"
      id="f-916"
      unitRef="usdPerShare">5.23</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-18" decimals="-3" id="f-917" unitRef="shares">283000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-18"
      decimals="2"
      id="f-918"
      unitRef="usdPerShare">1.97</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-18" decimals="-3" id="f-919" unitRef="shares">839000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-18"
      decimals="2"
      id="f-920"
      unitRef="usdPerShare">12.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-5" decimals="-3" id="f-921" unitRef="shares">5174000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-5"
      decimals="2"
      id="f-922"
      unitRef="usdPerShare">7.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="c-1" decimals="-3" id="f-923" unitRef="shares">4837000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-924"
      unitRef="usdPerShare">3.08</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-1" decimals="-3" id="f-925" unitRef="shares">399000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-926"
      unitRef="usdPerShare">3.24</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-1" decimals="-3" id="f-927" unitRef="shares">484000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-928"
      unitRef="usdPerShare">8.75</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-929" unitRef="shares">9128000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-930" unitRef="shares">9128000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-931" unitRef="shares">9128000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-932"
      unitRef="usdPerShare">5.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-4" decimals="-3" id="f-933" unitRef="shares">9128000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-934"
      unitRef="usdPerShare">5.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="c-1" id="f-935">P6Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="c-4" decimals="-3" id="f-936" unitRef="usd">8497000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="c-4" decimals="-3" id="f-937" unitRef="shares">2840000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-938"
      unitRef="usdPerShare">8.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-939">P4Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="c-4" decimals="-3" id="f-940" unitRef="usd">402000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="c-4" decimals="-3" id="f-941" unitRef="shares">8508000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-4"
      decimals="2"
      id="f-942"
      unitRef="usdPerShare">5.27</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-943">P6Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-4" decimals="-3" id="f-944" unitRef="usd">7724000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-1"
      decimals="2"
      id="f-945"
      unitRef="usdPerShare">2.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-18"
      decimals="2"
      id="f-946"
      unitRef="usdPerShare">3.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-19"
      decimals="2"
      id="f-947"
      unitRef="usdPerShare">4.99</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-1" decimals="-5" id="f-948" unitRef="usd">600000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-18" decimals="-5" id="f-949" unitRef="usd">700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-19" decimals="-5" id="f-950" unitRef="usd">3100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions contextRef="c-4" decimals="-5" id="f-951" unitRef="usd">11300000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-241" id="f-952">P2Y3M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock contextRef="c-1" id="f-953">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSA activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(133)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.04&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(302)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.31&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-279"
      decimals="-3"
      id="f-954"
      unitRef="shares">80000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-279"
      decimals="2"
      id="f-955"
      unitRef="usdPerShare">17.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-280"
      decimals="-3"
      id="f-956"
      unitRef="shares">159000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-280"
      decimals="2"
      id="f-957"
      unitRef="usdPerShare">7.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-280"
      decimals="-3"
      id="f-958"
      unitRef="shares">58000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-280"
      decimals="2"
      id="f-959"
      unitRef="usdPerShare">18.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-281"
      decimals="-3"
      id="f-960"
      unitRef="shares">181000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-281"
      decimals="2"
      id="f-961"
      unitRef="usdPerShare">8.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-282"
      decimals="-3"
      id="f-962"
      unitRef="shares">277000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-282"
      decimals="2"
      id="f-963"
      unitRef="usdPerShare">2.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-282"
      decimals="-3"
      id="f-964"
      unitRef="shares">133000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-282"
      decimals="2"
      id="f-965"
      unitRef="usdPerShare">9.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-283"
      decimals="-3"
      id="f-966"
      unitRef="shares">325000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-283"
      decimals="2"
      id="f-967"
      unitRef="usdPerShare">3.48</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-284"
      decimals="-3"
      id="f-968"
      unitRef="shares">211000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-284"
      decimals="2"
      id="f-969"
      unitRef="usdPerShare">3.32</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-284"
      decimals="-3"
      id="f-970"
      unitRef="shares">302000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-284"
      decimals="2"
      id="f-971"
      unitRef="usdPerShare">3.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-285"
      decimals="-3"
      id="f-972"
      unitRef="shares">234000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-285"
      decimals="2"
      id="f-973"
      unitRef="usdPerShare">3.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-284" decimals="-5" id="f-974" unitRef="usd">1000000.0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-282" decimals="-5" id="f-975" unitRef="usd">400000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-280" decimals="-5" id="f-976" unitRef="usd">500000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-285" decimals="-5" id="f-977" unitRef="usd">400000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-284" id="f-978">P0Y6M</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock contextRef="c-1" id="f-979">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(106)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(204)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(343)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(383)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(157)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.66&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,010&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-286"
      decimals="-3"
      id="f-980"
      unitRef="shares">232000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-286"
      decimals="2"
      id="f-981"
      unitRef="usdPerShare">21.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-287"
      decimals="-3"
      id="f-982"
      unitRef="shares">518000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-287"
      decimals="2"
      id="f-983"
      unitRef="usdPerShare">17.46</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-287"
      decimals="-3"
      id="f-984"
      unitRef="shares">106000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-287"
      decimals="2"
      id="f-985"
      unitRef="usdPerShare">21.21</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-287"
      decimals="-3"
      id="f-986"
      unitRef="shares">126000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-287"
      decimals="2"
      id="f-987"
      unitRef="usdPerShare">19.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-288"
      decimals="-3"
      id="f-988"
      unitRef="shares">518000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-288"
      decimals="2"
      id="f-989"
      unitRef="usdPerShare">18.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-289"
      decimals="-3"
      id="f-990"
      unitRef="shares">1049000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-289"
      decimals="2"
      id="f-991"
      unitRef="usdPerShare">5.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-289"
      decimals="-3"
      id="f-992"
      unitRef="shares">204000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-289"
      decimals="2"
      id="f-993"
      unitRef="usdPerShare">18.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-289"
      decimals="-3"
      id="f-994"
      unitRef="shares">343000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-289"
      decimals="2"
      id="f-995"
      unitRef="usdPerShare">9.71</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-290"
      decimals="-3"
      id="f-996"
      unitRef="shares">1020000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-290"
      decimals="2"
      id="f-997"
      unitRef="usdPerShare">7.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-291"
      decimals="-3"
      id="f-998"
      unitRef="shares">1530000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-291"
      decimals="2"
      id="f-999"
      unitRef="usdPerShare">3.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-291"
      decimals="-3"
      id="f-1000"
      unitRef="shares">383000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-291"
      decimals="2"
      id="f-1001"
      unitRef="usdPerShare">8.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-291"
      decimals="-3"
      id="f-1002"
      unitRef="shares">157000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-291"
      decimals="2"
      id="f-1003"
      unitRef="usdPerShare">4.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-292"
      decimals="-3"
      id="f-1004"
      unitRef="shares">2010000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-292"
      decimals="2"
      id="f-1005"
      unitRef="usdPerShare">4.16</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-291" decimals="-5" id="f-1006" unitRef="usd">1100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-289" decimals="-5" id="f-1007" unitRef="usd">1100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-287" decimals="-5" id="f-1008" unitRef="usd">1800000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-292" decimals="-5" id="f-1009" unitRef="usd">4200000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-291" id="f-1010">P1Y9M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock contextRef="c-1" id="f-1011">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes PSU activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;128&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21.24&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(107)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20.52&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(40)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;667&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11.02&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;25.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;292&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(248)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(44)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Non-vested balance at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarizes PBOs activities:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;br/&gt;of&lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Grant Date Fair Value&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.89&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(747)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.70&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(178)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Forfeited/Expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(73)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.43&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:42.677%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.385%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.520%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number &lt;br/&gt;of &lt;br/&gt;Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Exercise Price&lt;br/&gt;Per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual Term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Aggregate Intrinsic&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;(In Thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Exercisable at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.62&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest at December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,575&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10.62&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3.4&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-293"
      decimals="-3"
      id="f-1012"
      unitRef="shares">128000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-293"
      decimals="2"
      id="f-1013"
      unitRef="usdPerShare">21.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-269"
      decimals="-3"
      id="f-1014"
      unitRef="shares">686000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-269"
      decimals="2"
      id="f-1015"
      unitRef="usdPerShare">9.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-269"
      decimals="-3"
      id="f-1016"
      unitRef="shares">107000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-269"
      decimals="2"
      id="f-1017"
      unitRef="usdPerShare">20.52</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-269"
      decimals="-3"
      id="f-1018"
      unitRef="shares">40000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-269"
      decimals="2"
      id="f-1019"
      unitRef="usdPerShare">19.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-294"
      decimals="-3"
      id="f-1020"
      unitRef="shares">667000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-294"
      decimals="2"
      id="f-1021"
      unitRef="usdPerShare">9.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-268"
      decimals="-3"
      id="f-1022"
      unitRef="shares">315000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-268"
      decimals="2"
      id="f-1023"
      unitRef="usdPerShare">11.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-268"
      decimals="-3"
      id="f-1024"
      unitRef="shares">75000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-268"
      decimals="2"
      id="f-1025"
      unitRef="usdPerShare">12.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod
      contextRef="c-268"
      decimals="-3"
      id="f-1026"
      unitRef="shares">15000</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherInPeriod>
    <cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue
      contextRef="c-268"
      decimals="2"
      id="f-1027"
      unitRef="usdPerShare">25.05</cdxs:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOtherWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-295"
      decimals="-3"
      id="f-1028"
      unitRef="shares">292000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-295"
      decimals="2"
      id="f-1029"
      unitRef="usdPerShare">7.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-267"
      decimals="-3"
      id="f-1030"
      unitRef="shares">248000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-267"
      decimals="2"
      id="f-1031"
      unitRef="usdPerShare">7.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-267"
      decimals="-3"
      id="f-1032"
      unitRef="shares">44000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-267"
      decimals="2"
      id="f-1033"
      unitRef="usdPerShare">7.69</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-296"
      decimals="-3"
      id="f-1034"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-296"
      decimals="2"
      id="f-1035"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-267" decimals="-5" id="f-1036" unitRef="usd">900000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-268" decimals="-5" id="f-1037" unitRef="usd">1600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested contextRef="c-269" decimals="-5" id="f-1038" unitRef="usd">2100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-296" decimals="-5" id="f-1039" unitRef="usd">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-270"
      decimals="INF"
      id="f-1040"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-271" id="f-1041">P5Y7M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-271"
      decimals="3"
      id="f-1042"
      unitRef="number">0.549</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-271"
      decimals="4"
      id="f-1043"
      unitRef="number">0.018</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-271"
      decimals="3"
      id="f-1044"
      unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-297"
      decimals="-3"
      id="f-1045"
      unitRef="shares">1840000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-297"
      decimals="2"
      id="f-1046"
      unitRef="usdPerShare">4.11</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-271"
      decimals="-3"
      id="f-1047"
      unitRef="shares">733000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-271"
      decimals="2"
      id="f-1048"
      unitRef="usdPerShare">9.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-271"
      decimals="-3"
      id="f-1049"
      unitRef="shares">747000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-271"
      decimals="2"
      id="f-1050"
      unitRef="usdPerShare">8.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-298"
      decimals="-3"
      id="f-1051"
      unitRef="shares">1826000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-298"
      decimals="2"
      id="f-1052"
      unitRef="usdPerShare">4.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-254"
      decimals="-3"
      id="f-1053"
      unitRef="shares">178000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-254"
      decimals="2"
      id="f-1054"
      unitRef="usdPerShare">9.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-299"
      decimals="-3"
      id="f-1055"
      unitRef="shares">1648000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-299"
      decimals="2"
      id="f-1056"
      unitRef="usdPerShare">5.64</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-270"
      decimals="-3"
      id="f-1057"
      unitRef="shares">73000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-270"
      decimals="2"
      id="f-1058"
      unitRef="usdPerShare">10.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-300"
      decimals="-3"
      id="f-1059"
      unitRef="shares">1575000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-300"
      decimals="2"
      id="f-1060"
      unitRef="usdPerShare">5.43</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c-300"
      decimals="-3"
      id="f-1061"
      unitRef="shares">1575000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-300"
      decimals="2"
      id="f-1062"
      unitRef="usdPerShare">10.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="c-270" id="f-1063">P3Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="c-300" decimals="-3" id="f-1064" unitRef="usd">114000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c-300"
      decimals="-3"
      id="f-1065"
      unitRef="shares">1575000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-300"
      decimals="2"
      id="f-1066"
      unitRef="usdPerShare">10.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="c-270" id="f-1067">P3Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-300" decimals="-3" id="f-1068" unitRef="usd">114000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-270" decimals="-5" id="f-1069" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-271" decimals="-5" id="f-1070" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="c-254" decimals="-5" id="f-1071" unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions contextRef="c-300" decimals="-5" id="f-1072" unitRef="usd">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock contextRef="c-1" id="f-1073">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of shares to be issued under the ESPP is computed using the Black-Scholes-Merton option pricing model at the commencement of the offering period. The following summarizes the weighted-average assumptions used to estimate the fair value of ESPP for the initial offering period:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected life (years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1.2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;89.4&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;89.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4.6&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-239" id="f-1074">P1Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-272" id="f-1075">P0Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-239"
      decimals="3"
      id="f-1076"
      unitRef="number">0.894</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-272"
      decimals="3"
      id="f-1077"
      unitRef="number">0.896</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-239"
      decimals="4"
      id="f-1078"
      unitRef="number">0.046</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-272"
      decimals="4"
      id="f-1079"
      unitRef="number">0.053</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-239"
      decimals="3"
      id="f-1080"
      unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-272"
      decimals="3"
      id="f-1081"
      unitRef="number">0.000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="c-1" id="f-1082">Capital Stock&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Sales Agreements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In May 2021, we filed a Registration Statement on Form S-3 with the SEC (the &#x201c;2021 Registration Statement&#x201d;), that automatically became effective upon its filing, under which we were permitted to sell common stock, preferred stock, debt securities, warrants, purchase contracts, and units from time to time in one or more offerings. On February 27, 2023, we filed a post-effective amendment to the 2021 Registration Statement. Pursuant to that post-effective amendment, we registered an aggregate $200.0&#160;million of securities. In May 2021, we entered into an Equity Distribution Agreement (&#x201c;EDA&#x201d;) with Piper Sandler &amp;amp; Co (&#x201c;PSC&#x201d;), under which PSC, as our exclusive agent, at our discretion and at such times that we determined from time to time, may have sold over a three-year period from the execution of the EDA up to a maximum of $50.0&#160;million of shares of our common stock. Under the terms of the EDA, PSC was permitted to sell the shares at market prices by any method that is deemed to be an &#x201c;at the market offering&#x201d; as defined in Rule 415 under the Securities Act.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We were not required to sell any shares at any time during the term of the EDA. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On April 24, 2024, we terminated the EDA.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;No shares of our common stock were issued and sold pursuant to the EDA during the year ended December 31, 2024. During the year ended December&#160;31, 2023, 3,079,421 shares of our common stock were issued and sold pursuant to the EDA. During the year ended December&#160;31, 2023, we received gross proceeds of $8.7 million or $7.9 million in net proceeds after PSC's commissions and direct offering expenses of $0.7 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On May 2, 2024, we entered into a Controlled Equity Offering&#x2120; Sales Agreement (the &#x201c;Cantor Sales Agreement&#x201d;) with Cantor Fitzgerald &amp;amp; Co., as sales agent (&#x201c;Cantor&#x201d;), under which Cantor, at our discretion and at such times that we may determine from time to time, may sell up to a maximum of $75.0&#160;million of shares of our common stock. Under the terms of the Cantor Sales Agreement, Cantor may sell the shares at market prices by any method that is deemed to be an &#x201c;at the market offering&#x201d; as defined in Rule 415 under the Securities Act. On May 2, 2024, we filed a registration statement on Form S-3 registering the offer and sale of these shares under the Securities Act which became effective on May 14, 2024. We will pay a commission of up to 3.0% of gross sales proceeds of any common stock sold under the Cantor Sales Agreement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2024, 10,440,000 shares of our common stock were issued and sold pursuant to the Cantor Sales Agreement. During the year ended December&#160;31, 2024, we received gross proceeds of $31.3 million or $29.7 million in net proceeds after Cantor&#x2019;s commissions and direct offering expenses of $1.6 million. As of December&#160;31, 2024, $43.7 million remained available for sale under the Cantor Sales Agreement.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount contextRef="c-301" decimals="-5" id="f-1083" unitRef="usd">200000000</cdxs:SaleOfStockSecuritiesRegisteredAggregateAmount>
    <cdxs:SaleOfStockPeriod contextRef="c-302" id="f-1084">P3Y</cdxs:SaleOfStockPeriod>
    <cdxs:SaleOfStockValueOfSharesForIssuance contextRef="c-303" decimals="-5" id="f-1085" unitRef="usd">50000000</cdxs:SaleOfStockValueOfSharesForIssuance>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c-1"
      decimals="INF"
      id="f-1086"
      unitRef="shares">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c-18"
      decimals="INF"
      id="f-1087"
      unitRef="shares">3079421</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <cdxs:SaleOfStockConsiderationReceivedOnTransactionGross contextRef="c-18" decimals="-5" id="f-1088" unitRef="usd">8700000</cdxs:SaleOfStockConsiderationReceivedOnTransactionGross>
    <us-gaap:SaleOfStockConsiderationReceivedOnTransaction contextRef="c-18" decimals="-5" id="f-1089" unitRef="usd">7900000</us-gaap:SaleOfStockConsiderationReceivedOnTransaction>
    <us-gaap:PaymentsOfStockIssuanceCosts contextRef="c-18" decimals="-5" id="f-1090" unitRef="usd">700000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:SaleOfStockConsiderationReceivedOnTransaction contextRef="c-304" decimals="-5" id="f-1091" unitRef="usd">75000000</us-gaap:SaleOfStockConsiderationReceivedOnTransaction>
    <cdxs:SaleOfStockCommissionFeePercent
      contextRef="c-305"
      decimals="3"
      id="f-1092"
      unitRef="number">0.030</cdxs:SaleOfStockCommissionFeePercent>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c-306"
      decimals="INF"
      id="f-1093"
      unitRef="shares">10440000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <cdxs:SaleOfStockConsiderationReceivedOnTransactionGross contextRef="c-306" decimals="-5" id="f-1094" unitRef="usd">31300000</cdxs:SaleOfStockConsiderationReceivedOnTransactionGross>
    <us-gaap:SaleOfStockConsiderationReceivedOnTransaction contextRef="c-306" decimals="-5" id="f-1095" unitRef="usd">29700000</us-gaap:SaleOfStockConsiderationReceivedOnTransaction>
    <us-gaap:PaymentsOfStockIssuanceCosts contextRef="c-306" decimals="-5" id="f-1096" unitRef="usd">1600000</us-gaap:PaymentsOfStockIssuanceCosts>
    <cdxs:SaleOfStockValueOfSharesForIssuance contextRef="c-307" decimals="-5" id="f-1097" unitRef="usd">43700000</cdxs:SaleOfStockValueOfSharesForIssuance>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="c-1" id="f-1098">401(k) Plan&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In January 2005, we implemented a 401(k) Plan covering certain employees. Currently, all of our United States based employees over the age of 18 are eligible to participate in the 401(k) Plan. Under the 401(k) Plan, eligible employees may elect to reduce their current compensation up to a certain annual limit and contribute these amounts to the 401(k) Plan. We may make matching or other contributions to the 401(k) Plan on behalf of eligible employees. We recorded employer matching contributions expense o&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;f $1.2 million,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $1.4 million, and $1.6 million in the years ended December&#160;31, 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <cdxs:DefinedContributionPlanParticipantEligibilityAge
      contextRef="c-308"
      decimals="INF"
      id="f-1099"
      unitRef="security">18</cdxs:DefinedContributionPlanParticipantEligibilityAge>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-1" decimals="-5" id="f-1100" unitRef="usd">1200000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-18" decimals="-5" id="f-1101" unitRef="usd">1400000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-19" decimals="-5" id="f-1102" unitRef="usd">1600000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c-1" id="f-1103">Income Taxes&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our loss before provision for income taxes were as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(65,231)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,169)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,269)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss before provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(65,242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,316)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax provision for the year ended December&#160;31, 2024 and 2023 consists primarily of current year state and foreign income taxes. The tax provision for the year ended &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December 31,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; 2022 consists primarily of taxes attributable to foreign operations. The components of the provision for income taxes are as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current provision:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total current provision &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred benefit:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax benefit at federal statutory rate&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(13,701)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,133)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,208)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(494)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(419)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(925)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,793)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign operations taxed at different rates&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other nondeductible items&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(108)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;438&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(238)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;306&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,640&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred income taxes reflect the net tax effects of (a)&#160;temporary differences between the carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes, and (b)&#160;operating losses and tax credit carryforwards.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82,925&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;72,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reserves and accruals&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,650&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capital losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;R&amp;amp;D Capitalization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,821&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gain/loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,362&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;149,875&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;130,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(142,994)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(127,835)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,895)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,895)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(14)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:6pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASC 740 requires that the tax benefit of NOLs, temporary differences and credit carryforwards be recorded as an asset to the extent that management assesses that realization is &#x201c;more likely than not.&#x201d; Realization of the future tax benefits is dependent on our ability to generate sufficient taxable income within the carryforward period. Because of our history of operating losses, management believes that recognition of the deferred tax assets arising from the above-mentioned future tax benefits is currently not more likely than not to be realized and, accordingly, has provided a valuation allowance against our deferred tax assets. Accordingly, the net deferred tax assets in all our jurisdictions have been fully reserved by a valuation allowance. The net valuation allowance increased by&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $15.2 million d&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;uring the year ended December&#160;31, 2024, increased by $16.7&#160;million during the year ended December&#160;31, 2023, and increased by $9.4&#160;million during the year ended December&#160;31, 2022. At such time as it is determined that it is more likely than not that the deferred tax assets are realizable, the valuation allowance will be reduced.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2024 (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Expiration&lt;br/&gt;Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;182,918&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026-2037&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;158,554&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;175,040&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028-2044&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,073&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2024-2044&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Current U.S. federal and California tax laws include substantial restrictions on the utilization of NOLs and tax credit carryforwards in the event of an ownership change of a corporation. Accordingly, the Company's ability to utilize NOLs and tax credit carryforwards may be limited as a result of such ownership changes&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. We performed an analysis in 2024 and determined that there was not a limitation that would result in the expiration of carryforwards before they are utilized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We apply the provisions of ASC 740 to account for uncertain income tax&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;es. A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions based on tax positions related to current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reductions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(531)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(243)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We recognize interest and penalties as a co&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;mponent of our income tax expense. Total interest and penalties recognized in the consolidated statements of operations were $42 thousand, $42 thousand and $42 thousand in 2024, 2023 and 2022, respectively. Total penalties and interest recognized in the balance sheet was $0.6 million, $0.6 million and $0.5 million as of December&#160;31, 2024, 2023 and 2022, respectively. The total unrecognized tax benefits that, if recognized currently, would impact our company&#x2019;s effective tax rate were $0.3 million as of December&#160;31, 2024, 2023 and 2022. We do not expect any material changes to our uncertain tax positions within the next 12 months. We are not subject t&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;o examination by United States federal or state tax authorities for years prior to 2002 and foreign tax authorities for years prior to 2014.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock contextRef="c-1" id="f-1104">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our loss before provision for income taxes were as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(65,231)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,169)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,269)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Loss before provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(65,242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(76,171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(33,316)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-1" decimals="-3" id="f-1105" unitRef="usd">-65231000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-18" decimals="-3" id="f-1106" unitRef="usd">-76169000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-19" decimals="-3" id="f-1107" unitRef="usd">-33269000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-1" decimals="-3" id="f-1108" unitRef="usd">-11000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-18" decimals="-3" id="f-1109" unitRef="usd">-2000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-19" decimals="-3" id="f-1110" unitRef="usd">-47000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-1111" unitRef="usd">-65242000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-18" decimals="-3" id="f-1112" unitRef="usd">-76171000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-19" decimals="-3" id="f-1113" unitRef="usd">-33316000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="c-1" id="f-1114">The components of the provision for income taxes are as follows (in thousands):&#160;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current provision:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total current provision &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;36&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;283&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred benefit:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1115" unitRef="usd">-6000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1116" unitRef="usd">27000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1117" unitRef="usd">141000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1118" unitRef="usd">42000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1119" unitRef="usd">42000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1120" unitRef="usd">142000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1121" unitRef="usd">36000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1122" unitRef="usd">69000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1123" unitRef="usd">283000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1124" unitRef="usd">-2000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1125" unitRef="usd">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1126" unitRef="usd">-7000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1127" unitRef="usd">-2000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1128" unitRef="usd">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1129" unitRef="usd">-7000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1130" unitRef="usd">34000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1131" unitRef="usd">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1132" unitRef="usd">276000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="c-1" id="f-1133">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Reconciliation of the provision for income taxes calculated at the statutory rate to our provision for income taxes is as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax benefit at federal statutory rate&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(13,701)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(15,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;State taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,133)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,208)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(494)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Research and development credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(419)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(925)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,793)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Foreign operations taxed at different rates&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;78&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other nondeductible items&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(108)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;438&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(238)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;306&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,640&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Provision for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;69&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;276&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-1" decimals="-3" id="f-1134" unitRef="usd">-13701000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-18" decimals="-3" id="f-1135" unitRef="usd">-15995000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="c-19" decimals="-3" id="f-1136" unitRef="usd">-6996000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes contextRef="c-1" decimals="-3" id="f-1137" unitRef="usd">-3133000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes contextRef="c-18" decimals="-3" id="f-1138" unitRef="usd">-2208000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes contextRef="c-19" decimals="-3" id="f-1139" unitRef="usd">-494000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-1" decimals="-3" id="f-1140" unitRef="usd">419000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-18" decimals="-3" id="f-1141" unitRef="usd">925000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationTaxCreditsResearch contextRef="c-19" decimals="-3" id="f-1142" unitRef="usd">1793000</us-gaap:IncomeTaxReconciliationTaxCreditsResearch>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="c-1" decimals="-3" id="f-1143" unitRef="usd">0</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="c-18" decimals="-3" id="f-1144" unitRef="usd">0</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="c-19" decimals="-3" id="f-1145" unitRef="usd">78000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="c-1" decimals="-3" id="f-1146" unitRef="usd">1930000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="c-18" decimals="-3" id="f-1147" unitRef="usd">1967000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="c-19" decimals="-3" id="f-1148" unitRef="usd">239000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-1" decimals="-3" id="f-1149" unitRef="usd">-108000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-18" decimals="-3" id="f-1150" unitRef="usd">438000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther contextRef="c-19" decimals="-3" id="f-1151" unitRef="usd">-238000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther>
    <cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation contextRef="c-1" decimals="-3" id="f-1152" unitRef="usd">306000</cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation>
    <cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation contextRef="c-18" decimals="-3" id="f-1153" unitRef="usd">152000</cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation>
    <cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation contextRef="c-19" decimals="-3" id="f-1154" unitRef="usd">80000</cdxs:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensation>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-1" decimals="-3" id="f-1155" unitRef="usd">15159000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-18" decimals="-3" id="f-1156" unitRef="usd">16640000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-19" decimals="-3" id="f-1157" unitRef="usd">9400000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1158" unitRef="usd">34000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-18" decimals="-3" id="f-1159" unitRef="usd">69000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-19" decimals="-3" id="f-1160" unitRef="usd">276000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="c-1" id="f-1161">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of our deferred tax assets and liabilities are as follows (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82,925&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;72,586&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,660&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;48&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reserves and accruals&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,650&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Property and Equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;532&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Capital losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;452&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;R&amp;amp;D Capitalization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,471&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;26,821&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Unrealized gain/loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease liability&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,608&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,362&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;149,875&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;130,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(142,994)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(127,835)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,895)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(6,895)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,958)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(14)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:6pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="c-4" decimals="-3" id="f-1162" unitRef="usd">82925000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="c-5" decimals="-3" id="f-1163" unitRef="usd">72586000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="c-4" decimals="-3" id="f-1164" unitRef="usd">17660000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="c-5" decimals="-3" id="f-1165" unitRef="usd">16412000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsDeferredIncome contextRef="c-4" decimals="-3" id="f-1166" unitRef="usd">48000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsDeferredIncome contextRef="c-5" decimals="-3" id="f-1167" unitRef="usd">176000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-4" decimals="-3" id="f-1168" unitRef="usd">4786000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-5" decimals="-3" id="f-1169" unitRef="usd">4445000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals contextRef="c-4" decimals="-3" id="f-1170" unitRef="usd">2650000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals contextRef="c-5" decimals="-3" id="f-1171" unitRef="usd">2774000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-1172" unitRef="usd">830000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-1173" unitRef="usd">457000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="c-4" decimals="-3" id="f-1174" unitRef="usd">244000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="c-5" decimals="-3" id="f-1175" unitRef="usd">532000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsCapitalLossCarryforwards contextRef="c-4" decimals="-3" id="f-1176" unitRef="usd">452000</us-gaap:DeferredTaxAssetsCapitalLossCarryforwards>
    <us-gaap:DeferredTaxAssetsCapitalLossCarryforwards contextRef="c-5" decimals="-3" id="f-1177" unitRef="usd">424000</us-gaap:DeferredTaxAssetsCapitalLossCarryforwards>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment contextRef="c-4" decimals="-3" id="f-1178" unitRef="usd">28471000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment contextRef="c-5" decimals="-3" id="f-1179" unitRef="usd">26821000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsUnrealizedCurrencyLosses contextRef="c-4" decimals="-3" id="f-1180" unitRef="usd">2000</us-gaap:DeferredTaxAssetsUnrealizedCurrencyLosses>
    <us-gaap:DeferredTaxAssetsUnrealizedCurrencyLosses contextRef="c-5" decimals="-3" id="f-1181" unitRef="usd">0</us-gaap:DeferredTaxAssetsUnrealizedCurrencyLosses>
    <cdxs:DeferredTaxAssetsLeaseLiability contextRef="c-4" decimals="-3" id="f-1182" unitRef="usd">7445000</cdxs:DeferredTaxAssetsLeaseLiability>
    <cdxs:DeferredTaxAssetsLeaseLiability contextRef="c-5" decimals="-3" id="f-1183" unitRef="usd">3608000</cdxs:DeferredTaxAssetsLeaseLiability>
    <us-gaap:DeferredTaxAssetsOther contextRef="c-4" decimals="-3" id="f-1184" unitRef="usd">4362000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther contextRef="c-5" decimals="-3" id="f-1185" unitRef="usd">2542000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross contextRef="c-4" decimals="-3" id="f-1186" unitRef="usd">149875000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross contextRef="c-5" decimals="-3" id="f-1187" unitRef="usd">130777000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-4" decimals="-3" id="f-1188" unitRef="usd">142994000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-5" decimals="-3" id="f-1189" unitRef="usd">127835000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <cdxs:DeferredTaxLiabilitiesRightOfUseAssets contextRef="c-4" decimals="-3" id="f-1190" unitRef="usd">6895000</cdxs:DeferredTaxLiabilitiesRightOfUseAssets>
    <cdxs:DeferredTaxLiabilitiesRightOfUseAssets contextRef="c-5" decimals="-3" id="f-1191" unitRef="usd">2958000</cdxs:DeferredTaxLiabilitiesRightOfUseAssets>
    <us-gaap:DeferredIncomeTaxLiabilities contextRef="c-4" decimals="-3" id="f-1192" unitRef="usd">6895000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities contextRef="c-5" decimals="-3" id="f-1193" unitRef="usd">2958000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-4" decimals="-3" id="f-1194" unitRef="usd">14000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-5" decimals="-3" id="f-1195" unitRef="usd">16000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount contextRef="c-1" decimals="-5" id="f-1196" unitRef="usd">15200000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount contextRef="c-18" decimals="-5" id="f-1197" unitRef="usd">16700000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount contextRef="c-19" decimals="-5" id="f-1198" unitRef="usd">9400000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock contextRef="c-1" id="f-1199">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth our federal, state and foreign NOL carryforwards and federal research and development tax credits as of December&#160;31, 2024 (in thousands):&#160;&lt;br/&gt;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Expiration&lt;br/&gt;Years&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;182,918&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026-2037&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;158,554&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Net operating losses, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;175,040&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028-2044&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;19,073&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2024-2044&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Tax credits, state&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Do not expire&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock>
    <us-gaap:OperatingLossCarryforwards contextRef="c-309" decimals="-3" id="f-1200" unitRef="usd">182918000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration contextRef="c-309" decimals="-3" id="f-1201" unitRef="usd">158554000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration>
    <us-gaap:OperatingLossCarryforwards contextRef="c-310" decimals="-3" id="f-1202" unitRef="usd">175040000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:TaxCreditCarryforwardAmount contextRef="c-309" decimals="-3" id="f-1203" unitRef="usd">19073000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:TaxCreditCarryforwardAmount contextRef="c-310" decimals="-3" id="f-1204" unitRef="usd">20791000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock contextRef="c-1" id="f-1205">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):&#160;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at beginning of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,261&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions based on tax positions related to current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;3,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Additions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reductions to tax position of prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(531)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(243)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Balance at end of year&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,618&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;20,204&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,571&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-5" decimals="-3" id="f-1206" unitRef="usd">20204000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-35" decimals="-3" id="f-1207" unitRef="usd">18571000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-27" decimals="-3" id="f-1208" unitRef="usd">15261000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1209" unitRef="usd">1332000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-18" decimals="-3" id="f-1210" unitRef="usd">2164000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-19" decimals="-3" id="f-1211" unitRef="usd">3553000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1212" unitRef="usd">82000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-18" decimals="-3" id="f-1213" unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-19" decimals="-3" id="f-1214" unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1215" unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-18" decimals="-3" id="f-1216" unitRef="usd">531000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-19" decimals="-3" id="f-1217" unitRef="usd">243000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-4" decimals="-3" id="f-1218" unitRef="usd">21618000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-5" decimals="-3" id="f-1219" unitRef="usd">20204000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-35" decimals="-3" id="f-1220" unitRef="usd">18571000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-1" decimals="-3" id="f-1221" unitRef="usd">42000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-18" decimals="-3" id="f-1222" unitRef="usd">42000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-19" decimals="-3" id="f-1223" unitRef="usd">42000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-4" decimals="-5" id="f-1224" unitRef="usd">600000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-5" decimals="-5" id="f-1225" unitRef="usd">600000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-35" decimals="-5" id="f-1226" unitRef="usd">500000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c-35" decimals="-5" id="f-1227" unitRef="usd">300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c-5" decimals="-5" id="f-1228" unitRef="usd">300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="c-4" decimals="-5" id="f-1229" unitRef="usd">300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="c-1" id="f-1230">Commitments and Contingencies&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Operating Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our headquarters are located in Redwood City, California, where we occupy approximately 77,300 square feet of office and laboratory space in multiple buildings within the same business park operated by Metropolitan Life Insurance Company (&#x201c;MetLife&#x201d;). Our lease agreement with MetLife (&#x201c;RWC Lease&#x201d;) includes approximately 28,200 square feet of space located at 200 and 220 Penobscot Drive, Redwood City, California (the &#x201c;200/220 Penobscot Space&#x201d;) and approximately 37,900 square feet of space located at 400 Penobscot Drive, Redwood City, California (the &#x201c;400 Penobscot Space&#x201d;) (the 200/220 Penobscot Space and the 400 Penobscot Space are collectively referred to as the &#x201c;Penobscot Space&#x201d;), and approximately 11,200 square feet of space located at 501 Chesapeake Drive, Redwood City, California (the &#x201c;Chesapeake Space&#x201d;).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We entered into the initial lease with MetLife for our facilities in Redwood City in 2003 and the RWC Lease has been amended multiple times since then to adjust the leased space and terms of the Lease. In December 2024, we entered into a Ninth Amendment to the Lease (the &#x201c;Ninth Amendment&#x201d;) with MetLife with respect to the Penobscot Space and the Chesapeake Space to extend the term of the Lease for additional periods. Pursuant to the Ninth Amendment, the term of the lease of for both the Penobscot Space and the Chesapeake Space has been extended through August 2032. We have one (1) option to extend the term of the lease for the Penobscot Space for five (5) years, and one (1) separate option to extend the term of the lease for the Chesapeake Space for five (5) years. The Ninth Amendment provided a net tenant improvement allowance of $3.0 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a result of the lease extension, the Company remeasured the lease liability and adjusted the corresponding right-of-use asset based on the updated lease payments. The impact of this remeasurement, which included a non-cash increase in both the lease liability and right-of-use asset, was recorded as of December 31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2024 and the balance as of December&#160;31, 2024, including the changes during the period (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Right-of-use Assets - Operating Lease, net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at January 1, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,137&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,184)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Addition due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at December&#160;31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Lease Obligations - Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at January 1, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,727)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Interest accretion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Addition due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at December&#160;31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, we announced our plan to consolidate operations from our previous San Carlos facility to our headquarters in Redwood City. On September 1, 2023, the Company entered into an Assignment and Assumption of Lease (the &#x201c;Assignment Agreement&#x201d;) with Vaxcyte, Inc. (&#x201c;Vaxcyte&#x201d;) to assign to Vaxcyte all of the Company&#x2019;s right, title and interest in, under and to the San Carlos facility and the related Lease Agreement, dated as of January 29, 2021. On September 6, 2023, the Company, Vaxcyte and ARE-San Francisco No. 63, LLC (&#x201c;ARE&#x201d;) entered into a Consent to Assignment and First Amendment pursuant to which ARE consented to the Assignment Agreement and the assignment by the Company and the assumption by Vaxcyte of the Company&#x2019;s interest as tenant in the lease. The effective date of the assignment was October 1, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a result of the Assignment Agreement, the Company remeasured the lease obligation for the San Carlos facility to its present value of $3.1 million and wrote off the remaining lease liability of $19.6 million and the corresponding right of use asset balance. Simultaneously, the Company determined that indicators of impairment existed because the lease assignment impacts the utilization of the related right of use assets and leasehold improvements in the San Carlos facility, and therefore performed a recoverability test by estimating future undiscounted net cash flows expected to be generated from the use of these assets. As there were no substantial future cash inflows associated with these assets, the carrying values of these assets were deemed unrecoverable. As a result, during the third quarter of 2023, the Company recognized a non-cash impairment charge of $7.7 million, of which $4.7 million was related to leasehold improvements and $3.0 million for the right of use assets, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of the plan, the Company entered into agreements to sell certain laboratory equipment previously located in the San Carlos facility through an asset auction and as part of the lease assignment of the San Carlos facility to Vaxcyte. These certain items of laboratory equipment met the assets held for sale criteria and were sold during the fourth quarter of 2023. Using a fair value estimate based on Level 3 inputs in the fair value hierarchy, the Company determined that the carrying value of these assets exceeds fair value less costs to sell, which resulted in a write-down of $1.5 million, presented within the asset impairment and other charges line item in the consolidated statements of operations in the year ended December 31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the terms of the RWC Lease, we exercised our right to deliver a letter of credit in lieu of a security deposit. The letter of credit is collateralized by deposit balances held by the bank in the amount &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;of&#160;$1.1 million&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; as of&#160;December&#160;31, 2024 and 2023, and are recorded as non-current restricted cash on the consolidated balance sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are required to restore certain areas of the Redwood City facility that we are renting to its original form. We are expensing the asset retirement obligation over the term of the Redwood City lease. We review the estimated obligation each reporting period and make adjustments if our estimates change. We recorded asset retirement obligations of $0.3&#160;million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;as of December&#160;31, 2024 and 2023, which are included in other liabilities on the consolidated balance sheets. Accretion expense related to our asset retirement obligations was nominal in the years ended December&#160;31, 2024 and 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Lease and other information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease costs&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Short-term lease costs&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total lease cost&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="12" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Short-term lease costs on leases with terms of over one month and less than one year.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; The Company had no variable lease costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amounts included in the measurement of lease obligations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Cash paid:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating cash flows from operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,897&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Lease&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Other information:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.379%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.421%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,053&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,695&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reconciliation of operating lease liabilities as shown within the consolidated balance sheets:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current portion of lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Other Commitments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We enter into supply and service arrangements in the normal course of business. Supply arrangements are primarily for fixed-price manufacture and supply. Service agreements are primarily for the development of manufacturing processes and certain studies. Commitments under service agreements are subject to cancellation at our discretion which may require payment of certain cancellation fees. The timing of completion of service arrangements is subject to variability in estimates of the time required to complete the work. As of December 31, 2024, the future minimum payments that we expect to pay, including potential obligations under services agreements subject to risk of cancellation by us, is minimal.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Credit Facility&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 30, 2017, we entered into a credit facility (the &#x201c;Credit Facility&#x201d;) with Western Alliance Bank consisting of term loans (&#x201c;Term Debt&#x201d;) up to $10.0 million, and advances under a revolving line of credit of up to $5.0 million with an accounts receivable borrowing base of 80% of eligible accounts receivable. The right to take draws on the Term Debt expired on December 31, 2022. In March 2023, we terminated the Credit Facility with Western Alliance Bank. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Legal Proceedings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We may be involved in legal actions in the ordinary course of business, including inquiries and proceedings concerning business practices and intellectual property infringement, employee relations and other claims. We will recognize a loss contingency in the consolidated financial statements when it is probable a liability has been incurred and the amount of the loss can be reasonably estimated. We will disclose any loss contingencies that do not meet both conditions if there is a reasonable possibility that a material loss may have been incurred. Gain contingencies are not recorded until they are realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are currently not a party to any material pending litigation or other material legal proceedings that management believes could have a material adverse effect on our financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Indemnifications&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We are required to recognize a liability for the fair value of any obligations we assume upon the issuance of a guarantee. We have certain agreements with licensors, licensees and collaborators that contain indemnification provisions. In such provisions, we typically agree to indemnify the licensor, licensee and collaborator against certain types of third party claims. The maximum amount of the indemnifications is not limited. We accrue for known indemnification issues when a loss is probable and can be reasonably estimated. There were no accruals for expenses related to indemnification issues for any periods presented.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-4" decimals="-2" id="f-1231" unitRef="sqft">77300</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-311" decimals="-2" id="f-1232" unitRef="sqft">28200</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-312" decimals="-2" id="f-1233" unitRef="sqft">37900</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-313" decimals="-2" id="f-1234" unitRef="sqft">11200</us-gaap:AreaOfRealEstateProperty>
    <cdxs:LesseeOperatingLeaseNumberOfRenewalOptions
      contextRef="c-314"
      decimals="INF"
      id="f-1235"
      unitRef="renewal_option">1</cdxs:LesseeOperatingLeaseNumberOfRenewalOptions>
    <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="c-315" id="f-1236">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <cdxs:LesseeOperatingLeaseNumberOfRenewalOptions
      contextRef="c-316"
      decimals="INF"
      id="f-1237"
      unitRef="renewal_option">1</cdxs:LesseeOperatingLeaseNumberOfRenewalOptions>
    <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="c-317" id="f-1238">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <cdxs:AllowanceForTenantImprovements contextRef="c-4" decimals="-5" id="f-1239" unitRef="usd">3000000.0</cdxs:AllowanceForTenantImprovements>
    <cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock contextRef="c-1" id="f-1240">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tables below show the balance of right-of-use assets and lease obligations as of January 1, 2024 and the balance as of December&#160;31, 2024, including the changes during the period (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Right-of-use Assets - Operating Lease, net&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at January 1, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,137&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,184)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Addition due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Right-of-use assets - Operating leases, net, at December&#160;31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:77.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.369%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Lease Obligations - Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at January 1, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,727)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Interest accretion&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Addition due to lease modification&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations - Operating leases, net, at December&#160;31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cdxs:ScheduleOfRightOfUseAssetsAndLeaseObligationsTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-5" decimals="-3" id="f-1241" unitRef="usd">13137000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense contextRef="c-1" decimals="-3" id="f-1242" unitRef="usd">3184000</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <cdxs:OperatingLeaseRightOfUseAssetDueToLeaseModification contextRef="c-1" decimals="-3" id="f-1243" unitRef="usd">18747000</cdxs:OperatingLeaseRightOfUseAssetDueToLeaseModification>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-4" decimals="-3" id="f-1244" unitRef="usd">28700000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiability contextRef="c-5" decimals="-3" id="f-1245" unitRef="usd">16024000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="-3" id="f-1246" unitRef="usd">4727000</us-gaap:OperatingLeasePayments>
    <cdxs:OperatingLeaseInterestAccretion contextRef="c-1" decimals="-3" id="f-1247" unitRef="usd">946000</cdxs:OperatingLeaseInterestAccretion>
    <cdxs:OperatingLeaseWriteOffDueToLeaseModification contextRef="c-1" decimals="-3" id="f-1248" unitRef="usd">-18747000</cdxs:OperatingLeaseWriteOffDueToLeaseModification>
    <us-gaap:OperatingLeaseLiability contextRef="c-4" decimals="-3" id="f-1249" unitRef="usd">30990000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability contextRef="c-318" decimals="-5" id="f-1250" unitRef="usd">3100000</us-gaap:OperatingLeaseLiability>
    <cdxs:OperatingLeaseWriteOffDueToLeaseModification contextRef="c-319" decimals="-5" id="f-1251" unitRef="usd">19600000</cdxs:OperatingLeaseWriteOffDueToLeaseModification>
    <us-gaap:AssetImpairmentCharges contextRef="c-320" decimals="-5" id="f-1252" unitRef="usd">7700000</us-gaap:AssetImpairmentCharges>
    <us-gaap:ImpairmentOfLeasehold contextRef="c-223" decimals="-5" id="f-1253" unitRef="usd">4700000</us-gaap:ImpairmentOfLeasehold>
    <us-gaap:OperatingLeaseImpairmentLoss contextRef="c-223" decimals="-5" id="f-1254" unitRef="usd">3000000.0</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:AssetImpairmentCharges contextRef="c-223" decimals="-5" id="f-1255" unitRef="usd">1500000</us-gaap:AssetImpairmentCharges>
    <us-gaap:RestrictedCashAndInvestmentsNoncurrent contextRef="c-321" decimals="-5" id="f-1256" unitRef="usd">1100000</us-gaap:RestrictedCashAndInvestmentsNoncurrent>
    <us-gaap:RestrictedCashAndInvestmentsNoncurrent contextRef="c-322" decimals="-5" id="f-1257" unitRef="usd">1100000</us-gaap:RestrictedCashAndInvestmentsNoncurrent>
    <us-gaap:AssetRetirementObligation contextRef="c-5" decimals="-5" id="f-1258" unitRef="usd">300000</us-gaap:AssetRetirementObligation>
    <us-gaap:AssetRetirementObligation contextRef="c-4" decimals="-5" id="f-1259" unitRef="usd">300000</us-gaap:AssetRetirementObligation>
    <us-gaap:LeaseCostTableTextBlock contextRef="c-1" id="f-1260">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease costs amounts included in measurement of lease obligations and other information related to non-cancellable operating leases and finance leases were as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Finance lease costs&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Short-term lease costs&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total lease cost&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,130&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="12" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Short-term lease costs on leases with terms of over one month and less than one year.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; The Company had no variable lease costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amounts included in the measurement of lease obligations (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.169%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.423%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Cash paid:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Operating cash flows from operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,727&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,897&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;6,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Lease&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%"&gt;Other information:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average remaining lease term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Weighted-average discount rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;7.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
    <cdxs:FinanceLeaseCost contextRef="c-1" decimals="-3" id="f-1261" unitRef="usd">0</cdxs:FinanceLeaseCost>
    <cdxs:FinanceLeaseCost contextRef="c-18" decimals="-3" id="f-1262" unitRef="usd">0</cdxs:FinanceLeaseCost>
    <cdxs:FinanceLeaseCost contextRef="c-19" decimals="-3" id="f-1263" unitRef="usd">18000</cdxs:FinanceLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-1" decimals="-3" id="f-1264" unitRef="usd">4130000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-18" decimals="-3" id="f-1265" unitRef="usd">6310000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost contextRef="c-19" decimals="-3" id="f-1266" unitRef="usd">7321000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost contextRef="c-1" decimals="-3" id="f-1267" unitRef="usd">0</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost contextRef="c-18" decimals="-3" id="f-1268" unitRef="usd">0</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost contextRef="c-19" decimals="-3" id="f-1269" unitRef="usd">40000</us-gaap:ShortTermLeaseCost>
    <us-gaap:LeaseCost contextRef="c-1" decimals="-3" id="f-1270" unitRef="usd">4130000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost contextRef="c-18" decimals="-3" id="f-1271" unitRef="usd">6310000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost contextRef="c-19" decimals="-3" id="f-1272" unitRef="usd">7379000</us-gaap:LeaseCost>
    <us-gaap:VariableLeaseCost contextRef="c-1" decimals="-3" id="f-1273" unitRef="usd">0</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost contextRef="c-19" decimals="-3" id="f-1274" unitRef="usd">0</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost contextRef="c-18" decimals="-3" id="f-1275" unitRef="usd">0</us-gaap:VariableLeaseCost>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="-3" id="f-1276" unitRef="usd">4727000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-18" decimals="-3" id="f-1277" unitRef="usd">9897000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-19" decimals="-3" id="f-1278" unitRef="usd">6506000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-4" id="f-1279">P7Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-4" decimals="3" id="f-1280" unitRef="number">0.070</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="c-1" id="f-1281">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, our maturity analysis of annual undiscounted cash flows of the non-cancellable operating leases are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.379%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.421%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,868&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;4,053&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;5,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;15,695&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments &lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;40,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,405&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Lease obligations&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Reconciliation of operating lease liabilities as shown within the consolidated balance sheets:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Current portion of lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;2,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Long-term lease obligations - Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;30,990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-4" decimals="-3" id="f-1282" unitRef="usd">4868000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="c-4" decimals="-3" id="f-1283" unitRef="usd">5014000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="c-4" decimals="-3" id="f-1284" unitRef="usd">4053000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="c-4" decimals="-3" id="f-1285" unitRef="usd">5400000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="c-4" decimals="-3" id="f-1286" unitRef="usd">5365000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="c-4" decimals="-3" id="f-1287" unitRef="usd">15695000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-4" decimals="-3" id="f-1288" unitRef="usd">40395000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="c-4" decimals="-3" id="f-1289" unitRef="usd">9405000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability contextRef="c-4" decimals="-3" id="f-1290" unitRef="usd">30990000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-4" decimals="-3" id="f-1291" unitRef="usd">2827000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-4" decimals="-3" id="f-1292" unitRef="usd">28163000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability contextRef="c-4" decimals="-3" id="f-1293" unitRef="usd">30990000</us-gaap:OperatingLeaseLiability>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity contextRef="c-323" decimals="-5" id="f-1294" unitRef="usd">10000000.0</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity contextRef="c-324" decimals="-5" id="f-1295" unitRef="usd">5000000.0</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <cdxs:LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage
      contextRef="c-325"
      decimals="2"
      id="f-1296"
      unitRef="number">0.80</cdxs:LineOfCreditFacilityAccountsReceivableBorrowingBasePercentage>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent contextRef="c-326" decimals="-5" id="f-1297" unitRef="usd">0</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent contextRef="c-327" decimals="-5" id="f-1298" unitRef="usd">0</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent contextRef="c-328" decimals="-5" id="f-1299" unitRef="usd">0</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <us-gaap:DebtDisclosureTextBlock contextRef="c-1" id="f-1300">Debt&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Innovatus Loan Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 13, 2024 (the &#x201c;Closing Date&#x201d;), we entered into a &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;five&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;-year term loan and security agreement (the &#x201c;Loan Agreement&#x201d;) with Innovatus Life Sciences Lending Fund I, LP (&#x201c;Innovatus&#x201d;), an affiliate of Innovatus Capital Partners, LLC, for an aggregate principal amount of up to &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$40.0 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and with a maturity date of February 13, 2029 (the &#x201c;Innovatus Loan&#x201d;). The Innovatus Loan consists of two tranches, of which the first tranche of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$30.0 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; was funded on February 13, 2024. We will be eligible to draw down the second tranche of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$10.0 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; upon achievement of certain milestones including certain pre-specified revenue thresholds and subject to a payment of a facility fee equal to 1.00% of the amount of such term loan. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The floating per annum interest rate of the Innovatus Loan is equal to &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;the sum of (a) the greater of (i) prime rate published in the Money Rates section of the Wall Street Journal and (ii) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:f-1307"&gt;7.50&lt;/span&gt;%&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, plus (b) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:f-1310"&gt;3.25&lt;/span&gt;%; provided that, at the election of the Company, up to 2.0% of such rate shall be payable in-kind until the third anniversary of the closing date. The Company is required to make monthly interest-only payments through February 1, 2027 (with the ability to extend the interest-only period through February 1, 2028 upon the achievement of certain pre-specified financial milestones), after which the Company is required to make monthly amortizing payments, with the remaining balance of the principal plus accrued and unpaid interest due at maturity. 2.0% of the interest is payable in-kind for the first three years of the term by increasing the principal balance. Prepayments of the loan, in whole or in part, will be subject to an early prepayment fee which ranges between 3.0% and 1.0% and declines each year until the third anniversary date of the Closing Date, after which no prepayment fee is required. The Company is also required to pay an exit fee upon any payment or prepayment equal to 3.0% of the aggregate principal amount of the tranches funded under the Innovatus Loan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Innovatus Loan contains customary representations and warranties and covenants, subject to customary carve outs, and includes financial covenants related to liquidity and net product revenue, with the latter beginning with the period ended December 31, 2024. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Innovatus Loan is secured by perfected first priority liens on the Company's assets, and the Loan Agreement includes a negative pledge by the Company which prohibits the Company from permitting liens to be placed upon the Company's intellectual property in favor of any party other than Innovatus.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the issuance of the Innovatus Loan, we recorded a debt discount of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$1.3 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and capitalized debt issuance costs of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.6 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The discount and issuance costs will be amortized over the life of the Innovatus Loan. Interest expense for the Innovatus Loan for the year ended &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2024 &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;was &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$3.5 million,&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and is inclusive of non-cash amortization of the debt discount, debt issuance costs, payable in-kind interest, and accretion of final payment. The carrying amount of the Innovatus Loan approximates fair value given its recent issuance and the interest rate is based on the current prime rate. The effective interest rate for the Innovatus Loan was &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;13.1%&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; as of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2024&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Additionally, in connection with entering into the Innovatus Loan, we entered into a Warrant Agreement with Innovatus on February 13, 2024 and issued to Innovatus a warrant to purchase an aggregate of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;424,028&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; shares of the Company&#x2019;s common stock at an exercise price of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$2.83&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; per share. The warrants may be exercised on a cashless basis, and are immediately exercisable through the 10th anniversary of the issuance date. At the time of issuance, the Company determined the estimated fair value of the warrants of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.9 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#1e1d1d;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; using the Black-Scholes model. As the warrants represent a freestanding equity instrument, the Company recorded the fair value of the warrants in additional paid-in capital during the first quarter of 2024&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounts for the amortization of the debt discount and issuance costs utilizing the effective interest method. Long-term debt consisted of the following at December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.747%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.469%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Face value of debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Add: payment in-kind interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Add: amortized exit fee&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt discount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,151)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt issuance costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(552)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total long-term debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9pt;margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The future principal payments under the Innovatus Loan are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.747%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.469%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,264&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,917&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,653&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total principal payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,834&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Add: amortized exit fee&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: uncapitalized payment in-kind interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,351)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt issuance fee&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,151)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt issuance costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(552)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total long-term debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:DebtInstrumentTerm contextRef="c-329" id="f-1301">P5Y</us-gaap:DebtInstrumentTerm>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-330" decimals="-5" id="f-1302" unitRef="usd">40000000.0</us-gaap:DebtInstrumentFaceAmount>
    <cdxs:DebtInstrumentNumberOfTranches
      contextRef="c-330"
      decimals="INF"
      id="f-1303"
      unitRef="tranche">2</cdxs:DebtInstrumentNumberOfTranches>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-331" decimals="-5" id="f-1304" unitRef="usd">30000000.0</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-332" decimals="-5" id="f-1305" unitRef="usd">10000000.0</us-gaap:DebtInstrumentFaceAmount>
    <cdxs:DebtInstrumentFacilityFeePercent
      contextRef="c-333"
      decimals="3"
      id="f-1306"
      unitRef="number">0.0100</cdxs:DebtInstrumentFacilityFeePercent>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c-330"
      decimals="4"
      id="f-1308"
      unitRef="number">0.0750</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="c-329"
      decimals="4"
      id="f-1309"
      unitRef="number">0.0325</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <cdxs:DebtInstrumentInterestPaidInKind
      contextRef="c-330"
      decimals="3"
      id="f-1311"
      unitRef="number">0.020</cdxs:DebtInstrumentInterestPaidInKind>
    <cdxs:DebtInstrumentInterestPaidInKind
      contextRef="c-330"
      decimals="3"
      id="f-1312"
      unitRef="number">0.020</cdxs:DebtInstrumentInterestPaidInKind>
    <cdxs:DebtInstrumentInterestPayableTerm contextRef="c-329" id="f-1313">P3Y</cdxs:DebtInstrumentInterestPayableTerm>
    <cdxs:EarlyRepaymentFeePercentage
      contextRef="c-336"
      decimals="3"
      id="f-1314"
      unitRef="number">0.030</cdxs:EarlyRepaymentFeePercentage>
    <cdxs:EarlyRepaymentFeePercentage
      contextRef="c-337"
      decimals="3"
      id="f-1315"
      unitRef="number">0.010</cdxs:EarlyRepaymentFeePercentage>
    <cdxs:DebtInstrumentExitFeePercent
      contextRef="c-330"
      decimals="3"
      id="f-1316"
      unitRef="number">0.030</cdxs:DebtInstrumentExitFeePercent>
    <us-gaap:DebtInstrumentUnamortizedDiscount contextRef="c-330" decimals="-5" id="f-1317" unitRef="usd">1300000</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:UnamortizedDebtIssuanceExpense contextRef="c-330" decimals="-5" id="f-1318" unitRef="usd">600000</us-gaap:UnamortizedDebtIssuanceExpense>
    <us-gaap:InterestExpenseDebt contextRef="c-338" decimals="-5" id="f-1319" unitRef="usd">3500000</us-gaap:InterestExpenseDebt>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="c-339"
      decimals="3"
      id="f-1320"
      unitRef="number">0.131</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights
      contextRef="c-340"
      decimals="0"
      id="f-1321"
      unitRef="shares">424028</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="c-340"
      decimals="2"
      id="f-1322"
      unitRef="usdPerShare">2.83</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <cdxs:ClassOfWarrantOrRightFairValue contextRef="c-1" decimals="-5" id="f-1323" unitRef="usd">900000</cdxs:ClassOfWarrantOrRightFairValue>
    <us-gaap:ScheduleOfDebtInstrumentsTextBlock contextRef="c-1" id="f-1324">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounts for the amortization of the debt discount and issuance costs utilizing the effective interest method. Long-term debt consisted of the following at December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.747%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.469%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Face value of debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Add: payment in-kind interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Add: amortized exit fee&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt discount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,151)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt issuance costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(552)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total long-term debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDebtInstrumentsTextBlock>
    <us-gaap:DebtInstrumentFaceAmount contextRef="c-4" decimals="-3" id="f-1325" unitRef="usd">30000000</us-gaap:DebtInstrumentFaceAmount>
    <cdxs:DebtInstrumentPaymentInKindInterest contextRef="c-4" decimals="-3" id="f-1326" unitRef="usd">483000</cdxs:DebtInstrumentPaymentInKindInterest>
    <cdxs:DebtInstrumentAmortizedExitFee contextRef="c-4" decimals="-3" id="f-1327" unitRef="usd">125000</cdxs:DebtInstrumentAmortizedExitFee>
    <us-gaap:DebtInstrumentUnamortizedDiscount contextRef="c-4" decimals="-3" id="f-1328" unitRef="usd">1151000</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:UnamortizedDebtIssuanceExpense contextRef="c-4" decimals="-3" id="f-1329" unitRef="usd">552000</us-gaap:UnamortizedDebtIssuanceExpense>
    <us-gaap:LongTermDebt contextRef="c-4" decimals="-3" id="f-1330" unitRef="usd">28905000</us-gaap:LongTermDebt>
    <us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock contextRef="c-1" id="f-1331">&lt;div style="margin-bottom:9pt;margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The future principal payments under the Innovatus Loan are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.747%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.469%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,264&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,917&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,653&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total principal payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,834&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Add: amortized exit fee&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: uncapitalized payment in-kind interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,351)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt issuance fee&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,151)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: unamortized debt issuance costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(552)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total long-term debt&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths contextRef="c-4" decimals="-3" id="f-1332" unitRef="usd">0</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo contextRef="c-4" decimals="-3" id="f-1333" unitRef="usd">0</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree contextRef="c-4" decimals="-3" id="f-1334" unitRef="usd">13264000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour contextRef="c-4" decimals="-3" id="f-1335" unitRef="usd">15917000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive contextRef="c-4" decimals="-3" id="f-1336" unitRef="usd">2653000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive>
    <us-gaap:DebtInstrumentCarryingAmount contextRef="c-4" decimals="-3" id="f-1337" unitRef="usd">31834000</us-gaap:DebtInstrumentCarryingAmount>
    <cdxs:DebtInstrumentAmortizedExitFee contextRef="c-4" decimals="-3" id="f-1338" unitRef="usd">125000</cdxs:DebtInstrumentAmortizedExitFee>
    <cdxs:DebtInstrumentUncapitalizedPaymentInKindInterest contextRef="c-4" decimals="-3" id="f-1339" unitRef="usd">1351000</cdxs:DebtInstrumentUncapitalizedPaymentInKindInterest>
    <us-gaap:DebtInstrumentUnamortizedDiscount contextRef="c-4" decimals="-3" id="f-1340" unitRef="usd">1151000</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:UnamortizedDebtIssuanceExpense contextRef="c-4" decimals="-3" id="f-1341" unitRef="usd">552000</us-gaap:UnamortizedDebtIssuanceExpense>
    <us-gaap:LongTermDebt contextRef="c-4" decimals="-3" id="f-1342" unitRef="usd">28905000</us-gaap:LongTermDebt>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="c-1" id="f-1343">Segment, Geographical and Other Revenue Information&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker (&#x201c;CODM&#x201d;), assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment since the fourth quarter of 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective October 1, 2023, the Company's operations are managed and reported to the CODM on a consolidated basis. The CODM uses consolidated income (loss) from operations and net income (loss) to assess financial performance and make resource allocation decisions. These financial measures are used by the CODM to balance short-term financial results with long-term strategic goals, guiding the allocation of budget between product costs, research and development, and general, selling and administrative expenses.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a result of the restructuring of our business, the Company determined that a triggering event had occurred that required an interim goodwill impairment test during the third quarter of 2023. The fair value estimate used in the interim goodwill impairment test was primarily based on Level 3 inputs in the fair value hierarchy. Based on the results of the impairment evaluation, the Company determined that the goodwill within the Novel Biotherapeutics reporting unit was impaired, which resulted in a non-cash impairment charge of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$0.8 million&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; to write off all of the associated goodwill. The impairment charge is recorded within asset impairment and other charges in the consolidated statements of operation for the year ended &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December&#160;31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Significant Customers&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of our total revenues were as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Percentage of Total Revenues&lt;br/&gt;For the Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer A&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer C&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer E&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:9pt;padding-left:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;As of December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer F&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer G&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer H&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer I&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Geographical Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Geographic revenues are identified by the location of the customer and consist of the following (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)(3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(4)(5)(6)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,708&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; United States revenue was $21.3 million, $13.7 million, and $17.0 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Ireland revenue was $1.8 million, $0.5 million, and $37.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(3)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Switzerland revenue was $3.4 million, $11.1 million, and $9.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; China revenue was $9.8 million, $20.3 million, and $48.6 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(5)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; India revenue was $7.3 million, $5.7 million, and $8.8 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(6)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Singapore revenue was $6.2 million, $2.4 million, and $3.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Identifiable long-lived assets by location was as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock contextRef="c-1" id="f-1344">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We previously managed our business as two business segments, Performance Enzymes and Novel Biotherapeutics. During the fourth quarter of 2023, we made changes to the structure of our organization in connection with the restructuring of our business that we announced in July 2023, including the discontinuation of investment in certain development programs, primarily in our biotherapeutics business, consolidation of operations to our Redwood City, California headquarters, and headcount reduction. In connection with these organizational structure changes, corresponding changes were made to how our business is managed, how results are reported internally and how our CEO, our chief operating decision maker (&#x201c;CODM&#x201d;), assesses performance and allocates resources. As a result of these changes, our previous Performance Enzymes and Novel Biotherapeutics operating segments were combined into a single reportable segment. We believe that these changes better align internal resources and external go to market activities in order to create a more efficient and effective organizational structure. Under this new organizational and reporting structure, we managed our business as one reportable segment since the fourth quarter of 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective October 1, 2023, the Company's operations are managed and reported to the CODM on a consolidated basis. The CODM uses consolidated income (loss) from operations and net income (loss) to assess financial performance and make resource allocation decisions. These financial measures are used by the CODM to balance short-term financial results with long-term strategic goals, guiding the allocation of budget between product costs, research and development, and general, selling and administrative expenses.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <cdxs:NumberOfBusinessSegments
      contextRef="c-19"
      decimals="INF"
      id="f-1345"
      unitRef="segment">2</cdxs:NumberOfBusinessSegments>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-341"
      decimals="INF"
      id="f-1346"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:GoodwillImpairmentLoss contextRef="c-18" decimals="-5" id="f-1347" unitRef="usd">800000</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock contextRef="c-1" id="f-1348">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of our total revenues were as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Percentage of Total Revenues&lt;br/&gt;For the Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer A&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer C&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer E&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:9pt;padding-left:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customers that each accounted for 10% or more of accounts receivable balances as of the periods presented are as follows:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;As of December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer D&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer F&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer G&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer H&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Customer I&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%"&gt;* Percentage was less than 10%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-342"
      decimals="2"
      id="f-1349"
      unitRef="number">0.18</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-343"
      decimals="2"
      id="f-1350"
      unitRef="number">0.22</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-344"
      decimals="2"
      id="f-1351"
      unitRef="number">0.56</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-345"
      decimals="2"
      id="f-1352"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-346"
      decimals="2"
      id="f-1353"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-347"
      decimals="2"
      id="f-1354"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-348"
      decimals="2"
      id="f-1355"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-349"
      decimals="2"
      id="f-1356"
      unitRef="number">0.16</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-350"
      decimals="2"
      id="f-1357"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-351"
      decimals="2"
      id="f-1358"
      unitRef="number">0.18</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-352"
      decimals="2"
      id="f-1359"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-353"
      decimals="2"
      id="f-1360"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-354"
      decimals="2"
      id="f-1361"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-355"
      decimals="2"
      id="f-1362"
      unitRef="number">0.21</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-356"
      decimals="2"
      id="f-1363"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock contextRef="c-1" id="f-1364">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Geographic revenues are identified by the location of the customer and consist of the following (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:59.572%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.622%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Year Ended December 31, &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;21,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;13,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;17,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;EMEA&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(2)(3)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;22,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;56,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="padding-left:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;APAC&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(4)(5)(6)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;27,708&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;65,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Total revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;59,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;70,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;138,590&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; United States revenue was $21.3 million, $13.7 million, and $17.0 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Ireland revenue was $1.8 million, $0.5 million, and $37.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(3)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Switzerland revenue was $3.4 million, $11.1 million, and $9.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(4)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; China revenue was $9.8 million, $20.3 million, and $48.6 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(5)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; India revenue was $7.3 million, $5.7 million, and $8.8 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:10.8pt;text-indent:-10.8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:4.55pt;font-weight:400;line-height:120%;position:relative;top:-2.44pt;vertical-align:baseline"&gt;(6)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:7pt;font-weight:400;line-height:120%"&gt; Singapore revenue was $6.2 million, $2.4 million, and $3.2 million, for the years ended December&#160;31, 2024, 2023, and 2022, respectively&lt;/span&gt;&lt;/div&gt;</us-gaap:ReconciliationOfRevenueFromSegmentsToConsolidatedTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-60" decimals="-3" id="f-1365" unitRef="usd">21278000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-61" decimals="-3" id="f-1366" unitRef="usd">13733000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-62" decimals="-3" id="f-1367" unitRef="usd">17000000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-63" decimals="-3" id="f-1368" unitRef="usd">10359000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-64" decimals="-3" id="f-1369" unitRef="usd">22907000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-65" decimals="-3" id="f-1370" unitRef="usd">56540000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-66" decimals="-3" id="f-1371" unitRef="usd">27708000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-67" decimals="-3" id="f-1372" unitRef="usd">33503000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-68" decimals="-3" id="f-1373" unitRef="usd">65050000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-1374" unitRef="usd">59345000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-18" decimals="-3" id="f-1375" unitRef="usd">70143000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-19" decimals="-3" id="f-1376" unitRef="usd">138590000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-357" decimals="-5" id="f-1377" unitRef="usd">21300000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-358" decimals="-5" id="f-1378" unitRef="usd">13700000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-359" decimals="-5" id="f-1379" unitRef="usd">17000000.0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-360" decimals="-5" id="f-1380" unitRef="usd">1800000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-361" decimals="-5" id="f-1381" unitRef="usd">500000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-362" decimals="-5" id="f-1382" unitRef="usd">37200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-363" decimals="-5" id="f-1383" unitRef="usd">3400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-364" decimals="-5" id="f-1384" unitRef="usd">11100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-365" decimals="-5" id="f-1385" unitRef="usd">9200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-366" decimals="-5" id="f-1386" unitRef="usd">9800000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-367" decimals="-5" id="f-1387" unitRef="usd">20300000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-368" decimals="-5" id="f-1388" unitRef="usd">48600000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-369" decimals="-5" id="f-1389" unitRef="usd">7300000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-370" decimals="-5" id="f-1390" unitRef="usd">5700000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-371" decimals="-5" id="f-1391" unitRef="usd">8800000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-372" decimals="-5" id="f-1392" unitRef="usd">6200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-373" decimals="-5" id="f-1393" unitRef="usd">2400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-374" decimals="-5" id="f-1394" unitRef="usd">3200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock contextRef="c-1" id="f-1395">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Identifiable long-lived assets by location was as follows (in thousands):&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.619%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.621%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;43,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;28,624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock>
    <us-gaap:NoncurrentAssets contextRef="c-375" decimals="-3" id="f-1396" unitRef="usd">43098000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-376" decimals="-3" id="f-1397" unitRef="usd">28624000</us-gaap:NoncurrentAssets>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock contextRef="c-1" id="f-1398">Restructuring Charges&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2023, in alignment with our enhanced strategic focus, we announced a restructuring of our business, including a plan for a workforce reduction of approximately 25%. During the year ended December 31, 2023&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, w&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;e recorded a restructuring charge related to this workforce reduction of $3.1 million related to severance and related benefit costs. The plan was substantially completed in September 2023 and severance costs were paid through the fourth quarter of 2023. We do not expect to record any significant future charges related to the restructuring plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; In November 2022, we announced a plan for a workforce reduction of approximately 18% to realign and optimize our workforce requirements in alignment with our refined corporate strategy. The plan was substantially completed in December 2022 and severance costs were paid through the third quarter of 2023. During the years ended December 31, 2023&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and 2022&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, we recorded restructuring charges of $0.2 million and $3.2 million, respectively, related to severance, bonus and other termination benefits in connection with the workforce reduction announced in November 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We do not expect to record any future charges related to the restructuring plans initiated in 2023 and 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent
      contextRef="c-377"
      decimals="2"
      id="f-1399"
      unitRef="number">0.25</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent>
    <us-gaap:RestructuringCharges contextRef="c-378" decimals="-5" id="f-1400" unitRef="usd">3100000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent
      contextRef="c-379"
      decimals="2"
      id="f-1401"
      unitRef="number">0.18</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent>
    <us-gaap:RestructuringCharges contextRef="c-380" decimals="-5" id="f-1402" unitRef="usd">200000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-381" decimals="-5" id="f-1403" unitRef="usd">3200000</us-gaap:RestructuringCharges>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="c-274" id="f-1404">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="c-274" id="f-1405">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="c-274" id="f-1406">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="c-274" id="f-1407">false</ecd:NonRule10b51ArrTrmntdFlag>
    <ecd:InsiderTrdPoliciesProcAdoptedFlag contextRef="c-1" id="f-1408">true</ecd:InsiderTrdPoliciesProcAdoptedFlag>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
